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