main函數詳解,
1.主函數是靜態;
2.主函數是一個特殊的函數,作為程式的入口,可以被JVM識別;
3.主函數的定義:
(1)public:
①公用的,代表許可權是最大,在任何情況下都可以訪問;
②使用public的原因:為了保證讓JVM在任何情況下都可以訪問到main方法;
(2)static:
①靜態,靜態可以讓JVM調用main函數的時候更加的方便,不需要通過對象調用;
②如果不使用static修飾所帶來的麻煩:需要建立對象調用(這一點JVM可以自己解決),但是JVM不知道如何建立對象,因為建立對象有些是需要參數的,至於參數傳遞什麼內容,這點是JVM解決不了的。
class Demo1{public void main(String[] args){System.out.println("Hello world");}}
比如上述代碼沒有使用static修飾,JVM調用主函數時就必須要建立對象,所以通過new Demo1.main( )來調用main方法,這時是沒有任何問題的,最怕的是出現下述的情況,就是這個類沒有無參的構造方法,只有一個帶參的構造方法。
class Demo1{public Demo1(String name,int age){}public void main(String[] args){System.out.println("Hello world");}}
此時對於JVM來說,沒有static修飾,必須得建立對象才能調用main方法,這時建立對象就遇到了jvm不可能能解決到的問題,那就是參數的傳遞。因為建立對象要構造方法,但是現在沒有無參的構造方法,就只能用到這個有參的構造方法,但是這個構造方法是需要接收參數的。對於JVM來說,它並不知道應該傳什麼參數合適。所以這時候JVM建立對象是非常麻煩的。所以,這時候就使用static,這樣的話就避免了這些麻煩的事情。
(3)void:
沒有返回值,因為返回的資料是給JVM的,而JVM使用這個資料是沒有意義的,所以返回空。
假如傳回型別不是void而是int,這時候返回int給JVM,JVM是不能把這個資料給你的,因為當你的主方法寫了很多行代碼後,最後一個返回語句返回,一旦返回就意味著這個方法結束了,主方法結束後就意味著你的程式停止了,這時候就算返回給JVM,你也拿不到這個資料,而這個資料對於JVM來說是沒有任何意義的。
(4)main:
main是函數名;
注意:main並不是關鍵字,只不過是JVM能識別的一個特殊的函數名而已,告訴JVM這是程式的入口處。
(5)(String[ ] args):
函數的參數,擔心某些程式在啟動時需要參數,參數類型是一個數組,該數組中的元素是字串,字串類型的數組。
4.執行個體
class Demo1 {public static void main(String[] args) {System.out.println("數組的長度:"+ args.length);for(int i = 0 ; i <args.length ; i++){System.out.print(args[i]+",");}}}
運行結果如所示:
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。 http://blog.csdn.net/zhuwei1035838807/article/details/79206449