A. java提示main方法不能聲明為靜態。
main方法只能聲明在static的方法中。
你碰到的問題是,Knowedge是內部非靜態類類。
你可以把Knowedge變為static類,或者把Knowedge作為外部類。
這樣:
classTree{
Stringname;
intage;
intweight;
publicTree(Stringname,intage,intweight){
this.name=name;
this.age=age;
this.weight=weight;
}
publicStringTalk(){
return("世界上最大的生物是:"+name+" 他的年齡是:"+age+" 他的體重為:");
}
publicstaticclassKnowedge{
publicstaticvoidmain(String[]args){/*這里提示main()不能修飾為靜態=,只有在靜態類型或頂級類型中才能聲明靜態方法。*/
Treemost=newTree("世界爺",2000,1000);
System.out.println(most.Talk());
}
}
}
或者這樣:
classTree{
Stringname;
intage;
intweight;
publicTree(Stringname,intage,intweight){
this.name=name;
this.age=age;
this.weight=weight;
}
publicStringTalk(){
return("世界上最大的生物是:"+name+" 他的年齡是:"+age+" 他的體重為:");
}
}
publicclassKnowedge{
publicstaticvoidmain(String[]args){/*這里提示main()不能修飾為靜態=,只有在靜態類型或頂級類型中才能聲明靜態方法。*/
Treemost=newTree("世界爺",2000,1000);
System.out.println(most.Talk());
}
}
B. java中的main函數為什麼是靜態的
非靜態成員函數在執行前必須先構造並實例化該函數所在的類。
如果允許非靜態的main,那麼main函數所在的類必須先進行實例化,
那麼就需要再寫個函數去實例化main所在的類,再調用main,這個實例化代碼又寫在哪呢?如果它也是非靜態的,豈不是又要寫個函數去實例化它所在的類嘛?
因此,JAVA語言就規定了main必須是靜態的。
C. 在java中為什麼要把main方法定義為一個static方法
1、首先介紹一下static這個修飾符
在類中,變數的前面有修飾符static稱為靜態變數(類變數),方法的前面有修飾符static稱為靜態方法(類方法)。靜態方法和靜態變數是屬於某一個類,而不屬於類的對象。
2、如果一個方法沒有用static來修飾的話就說明這是一個成員方法,只能通過對象來調用這個方法
3、在Java程序運行時,是沒有實例化任何對象的,只能通過調用類方法來運行main方法,
所以會用static來修飾
D. 代碼必須包含一個main的共有main的靜態方式
是的,在Java語言中,一個類必須包含一個名為「main」的靜態方法,才能作為程序的入口點。該方法必須遵循以下形式:
publicstaticvoidmain(String[]args)
在這個示例中,「public」是訪問修飾符,表示該方法可以被任何地方調用。「static」表示該方法是一個靜態方法,可以直接通過類名調用,而不需要實例化類。「void」表示該方法不返回任何值。「String[]args」是該方法的參數列表,它表示該方法可以接收一個字元串數組作為參數。
在Java語言中,main方法是程序的入口點,是程序執行的起點。當程序運行時,Java虛擬機會自動尋找包含main方法的類,並調用它的main方法。因此,如果您希望編寫一個可以運行的Java程序,那麼您必須包含一個main方法
E. 怎樣在java中定義一個main類,並且為public屬性,且main類中包含main的靜態方法
//名為Main的一個類
public class Main {
//主方法
public static void main(String[] args) {
}
//名為main的無參靜態方法
public static void main() {
}
//名為main的有參靜態方法
public static void main(int n) {
}
}
F. java中的main函數為什麼是靜態的
main函數
其實也是所在類的一個方法,就比如一個類是test,那麼該類的main其實就是test.main(String[]
args),眾所周知如果一個方法不是靜態的,則要先
實例化
該類,比如要這樣
A
a=new
A();
然後才能調用
a.main();
而這對於運行一個程序的
主函數
來說是不現實的,所以比如把main函數定義為static,使a.main()可以直接被調用。
因此,java規定了main函數必須是靜態的
G. 為什麼java的main方法必須是靜態的
所有static成員都是在程序裝載時初始化的,被分配在一塊靜態存儲區域。
這個區域的成員一旦被分配,就不再改變地址啦。直到程序結束才釋放。
main()就存儲在這里。
盡管包含main()的類還沒有被實例化,但是main()方法已經可以使用啦。
而且JVM將會自動調用這個方法。通過main()的調用,再實例化其他的對象,
也包括自己所在的類。
H. 填空題:Java應用程序中的main方法,必須是一個________靜態方法
Java中 main 方法的寫法是
public static void mian(String arg[]) {...}
由此可知,Java應用程序中的main方法,必須是一個共有的(public),無返回值(void),帶參的(String arg[]) 靜態(static)方法
希望能幫到你
I. Java中main()的聲明格式包括哪些
publicstaticvoidmain(String[]args)throwsException{}main方法被聲明為靜態方法(static),一般在一個類裡面定義這樣的main方法對該類進行一些簡單的測試。main方法就這一種聲明格式。1.public定義main方法的訪問許可權為公有的。2.static聲明為靜態方法,靜態方法是屬於類的,在沒實例化之前就可以使用。3.void聲明返回方式。4.如果在main方法裡面會拋出異常且未當場處理時需加上throwsException,否則可以不用,Exception可以是你自己定義的異常。5.重點介紹一下main函數的參數String[]args:String[]args是main函數的形式參數,可以用來獲取命令行用戶輸入進去的參數。聲明main函數的時候一定要在括弧里寫上它,否則會報錯。舉個用到String[]args的例子,可能不能運行,權當給你理解用。classExample{publicvoidmain(String[]args){System.out.println(args[0]);System.out.println(args[1]);}}那麼這個程序在執行的時候就需要向main函數傳遞形式參數的值,好讓main函數完成列印的功能。註:String[]args顯示args是一個String類型的數組,args[0]、args[1]是頭兩個元素。執行時在控制台輸入:straulgood後面兩個字元串隨便寫什麼,它們作為實參傳入main函數,straul傳入args[0],good傳入args[1]。那麼屏幕會出現:straulgood這和在main函數里調用其他函數並且向被調用函數傳遞參數是一樣的道理,只不過傳給main函數罷了。希望對你有用!J. Java中的靜態方法和主方法應該先執行哪個
mian方法也是靜態方法,main方法是程序入口,肯定先執行main方法,然後將要執行的方法在main調用,否則不會被執行。
如果想在main之前被執行的話,寫入static塊
例如:
public class Test{
static{
System.out.println("static");
}
public static void main(String [] args){
System.out.print("main");
}
}