Re: [問題] class裡面自己宣告自己

看板java作者 (egoist)時間15年前 (2010/09/30 05:32), 編輯推噓5(502)
留言7則, 2人參與, 最新討論串2/2 (看更多)
: 但是如果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

09/30 06:59, , 1F
還有就是static在JVM裡面是唯一的 不會像物件一樣new很多
09/30 06:59, 1F

09/30 07:03, , 2F
不過也是有確保class只會有單一instance的方法和場合
09/30 07:03, 2F

09/30 07:04, , 3F
static"有點像是"其他語言的global variable
09/30 07:04, 3F

09/30 07:10, , 4F
如果data member被宣告為static,則不需要new他就會
09/30 07:10, 4F

09/30 07:13, , 5F
存在JVM裡 其他的則可能會被GC回收
09/30 07:13, 5F

09/30 07:17, , 6F
我可能講得很亂,你可以去找資料了解static吧@@
09/30 07:17, 6F

09/30 09:42, , 7F
謝謝樓上詳細的解答, 我想我應該了解了!
09/30 09:42, 7F
文章代碼(AID): #1Cex29U7 (java)
文章代碼(AID): #1Cex29U7 (java)