在講這個之前,我先講一些關於Java關鍵字static的吧。
(1)在類中,變量的前面有修飾符static稱為靜態變量(類變量),方法的前面有修飾符static稱為靜態方法(類方法)。靜態方法和靜態變量是屬於某一個類,而不屬於類的對象。
(2)靜態方法和靜態變量的引用直接通過類名引用。
例如:類Point中有個 static int x;類變量,我們要引用它:Point.x=89;
(3)在靜態方法中不能調用非靜態方法和引用非靜態的成員變量。反之,則可以。
原因:靜態變量和靜態方法在類被加載的時候就分配了內存空間,當非靜態的方法調用他們的時候,他們已經有了內存空間,當然是可以調用的咯!
(4)可以用類的對象去調用靜態的方法。
我們知道,在C/C++當中,這個main方法並不是屬於某一個類的,它是一個全局的方法,所以當我們執行的時候,c++編譯器很容易的就能找到這個main方法,然而當我們執行一個java程序的時候,因為java都是以類作為程序的組織單元,當我們要執行的時候,我們並不知道這個main方法會放到哪個類當中,也不知道是否是要產生類的一個對象,為了解決程序的運行問題,我們將這個main方法定義為static,這樣的話,當我們在執行一個java代碼的時候,我們在命令提示符中寫:java Point(Point為一個類),解釋器就會在Point這個類當中,去調用這個靜態的main方法,而不需要產生Point這個類的對象,當我們加載Point這個類的時候,那么main方法也被加載了,作為我們java程序的一個入口。