看板 java 關於我們 聯絡資訊
: 但是如果test.java變成如下: : public class test{ : public void prt(){ : System.out.println("subroutine"); : } : public static void main(String [] args){ : test t=new test(); : } : } : 這樣我就不太懂意思? : 因為test長什麼樣子是規定出來了沒錯, : 但是test這個型別的規格裡面卻又產生了自己一份?? : 這樣不會有循環定義的可能嗎? : 然後, 又再什麼時機之下我需要用到這樣的定義方法呢? 我把我了解的講一遍, 看看對不對? 因main() method是static, 所以可以不被new出一個物件就被執行, 而系統的進入點就是"系統不建立物件, 而直接call了main() method" 所以雖然之後我可以在別的class裡面new出test這個物件, 但是反正我也不執行他, 所以就沒關係了. 這樣講對嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.247.44.66
a1234957:還有就是static在JVM裡面是唯一的 不會像物件一樣new很多 09/30 06:59
a1234957:不過也是有確保class只會有單一instance的方法和場合 09/30 07:03
a1234957:static"有點像是"其他語言的global variable 09/30 07:04
a1234957:如果data member被宣告為static,則不需要new他就會 09/30 07:10
a1234957:存在JVM裡 其他的則可能會被GC回收 09/30 07:13
a1234957:我可能講得很亂,你可以去找資料了解static吧@@ 09/30 07:17
snobbery:謝謝樓上詳細的解答, 我想我應該了解了! 09/30 09:42