看板 java 關於我們 聯絡資訊
我有一個觀念上的瓶頸 因為我是從學C開始接觸程式語言的 所以第一次接觸到物件導向之後 只是跟著書上的方法把Class用new實體出物件 但是最近卻發現 好像我如果做了一個Class A 除了用 A a = new A(); 也是可以直接像宣告變述那樣 A a; 而且也是可以使用 "a.類別成員" 那為什麼還需要new呢? 這兩個到底有什麼差別? new不new有差嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.46.84.82
brianhsu:一個在 Stack 上,一個在 Heap 上,生命週期不一樣。 09/07 21:37
fbukevin:那各別在什麼時候使用呢? 09/07 21:43
james732:你確定 A a; a.成員; 這樣在執行的時候沒有問題嗎 XD 09/07 21:44
elenaser:他應該是有用static吧? 09/07 21:45
brianhsu:我忽然發現,這裡是 Java 版,不是 C_CPP 版,請無視我 09/07 21:49
tkcn:A a; 並不會建立物件,a 只會指向 null。 09/07 21:50
brianhsu:的推文。XDDD 09/07 21:50
tkcn:我剛剛也一度懷疑這裡不是 Java 板 XD 09/07 21:52
elenaser:他應該是想表達類別方法跟實體方法差別在哪 09/07 21:52
fbukevin:剛剛試過,好像是我搞錯,不能a.成員 09/07 21:55
fbukevin:但是像 int 不是也是一種類別嗎?為啥就可以直接 int a? 09/07 21:57
elenaser:我回一篇給你 我先去下載排版器 09/07 21:57
remmurds:應該是對於實體型別和參考型別的觀念不夠熟 09/07 23:04
nvidia:............................. 09/07 23:38
nvidia:我看你連C也不熟 09/07 23:39
jaw109:C沒有new 09/08 00:13
hilorrk:C++和Java的意思是不一樣的... 09/08 01:22
nvidia:C有static 09/08 07:05