Java , main 方法是具有特權的方法
main 方法是具有特權的方法。記憶體內若無此方法的存在,
程式便無法啟動。但是 Java 有項「所有的方法(包括物件)都必
須在 class 內定義」的限制,不能像 C++ 一樣在 class 以外定義
全域的物件或方法。這樣一來,解決之道只有一途,那就是將
main 方法宣告成 static,並在定義類別時,確立記憶體的空間。
static 的 main 方法為 Java 的必然歸宿。
在 JVM 裡面,在執行一個 class 的時候,所需要的一個入口
比如說:
如果要執行這個 class, 就必須替這個 class 建立一個 入口 給 JVM
讓 JVM 知道要先執行哪一個 method
所以就必須在這個 class 裡面加入一個 靜態方法 (static method)
原始碼就會變成這樣:
所以呢
在執行的時候:
JVM 就會知道去找 METAVIGE class 裡面的 main() 方法來執行
不知道我這樣解釋
是不是能比較明白的了解
程式便無法啟動。但是 Java 有項「所有的方法(包括物件)都必
須在 class 內定義」的限制,不能像 C++ 一樣在 class 以外定義
全域的物件或方法。這樣一來,解決之道只有一途,那就是將
main 方法宣告成 static,並在定義類別時,確立記憶體的空間。
static 的 main 方法為 Java 的必然歸宿。
在 JVM 裡面,在執行一個 class 的時候,所需要的一個入口
比如說:
public final class METAVIGE {
private String name = "metavige";
private static final String nickname = "gentleman";
public String toString() {
return name + " is " + nickname;
}
}
如果要執行這個 class, 就必須替這個 class 建立一個 入口 給 JVM
讓 JVM 知道要先執行哪一個 method
所以就必須在這個 class 裡面加入一個 靜態方法 (static method)
原始碼就會變成這樣:
public final class METAVIGE {
private String name = "metavige";
private static final String nickname = "gentleman";
public String toString() {
return name + " is a " + nickname;
}
public static void main(String args[]) {
METAVIGE me = new METAVIGE();
System.out.println(me);
}
}
所以呢
在執行的時候:
C:\JavaTest>java METAVIGE
JVM 就會知道去找 METAVIGE class 裡面的 main() 方法來執行
不知道我這樣解釋
是不是能比較明白的了解

0 Comments:
張貼留言
<< Home