作者snobbery (egoist)
看板java
標題Re: [問題] class裡面自己宣告自己
時間Thu Sep 30 05:32:55 2010
: 但是如果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