[問題] new不new的差別?

看板java作者 (Veck)時間15年前 (2010/09/07 21:32), 編輯推噓0(0018)
留言18則, 9人參與, 最新討論串1/3 (看更多)
我有一個觀念上的瓶頸 因為我是從學C開始接觸程式語言的 所以第一次接觸到物件導向之後 只是跟著書上的方法把Class用new實體出物件 但是最近卻發現 好像我如果做了一個Class A 除了用 A a = new A(); 也是可以直接像宣告變述那樣 A a; 而且也是可以使用 "a.類別成員" 那為什麼還需要new呢? 這兩個到底有什麼差別? new不new有差嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.46.84.82

09/07 21:37, , 1F
一個在 Stack 上,一個在 Heap 上,生命週期不一樣。
09/07 21:37, 1F

09/07 21:43, , 2F
那各別在什麼時候使用呢?
09/07 21:43, 2F

09/07 21:44, , 3F
你確定 A a; a.成員; 這樣在執行的時候沒有問題嗎 XD
09/07 21:44, 3F

09/07 21:45, , 4F
他應該是有用static吧?
09/07 21:45, 4F

09/07 21:49, , 5F
我忽然發現,這裡是 Java 版,不是 C_CPP 版,請無視我
09/07 21:49, 5F

09/07 21:50, , 6F
A a; 並不會建立物件,a 只會指向 null。
09/07 21:50, 6F

09/07 21:50, , 7F
的推文。XDDD
09/07 21:50, 7F

09/07 21:52, , 8F
我剛剛也一度懷疑這裡不是 Java 板 XD
09/07 21:52, 8F

09/07 21:52, , 9F
他應該是想表達類別方法跟實體方法差別在哪
09/07 21:52, 9F

09/07 21:55, , 10F
剛剛試過,好像是我搞錯,不能a.成員
09/07 21:55, 10F

09/07 21:57, , 11F
但是像 int 不是也是一種類別嗎?為啥就可以直接 int a?
09/07 21:57, 11F

09/07 21:57, , 12F
我回一篇給你 我先去下載排版器
09/07 21:57, 12F

09/07 23:04, , 13F
應該是對於實體型別和參考型別的觀念不夠熟
09/07 23:04, 13F

09/07 23:38, , 14F
.............................
09/07 23:38, 14F

09/07 23:39, , 15F
我看你連C也不熟
09/07 23:39, 15F

09/08 00:13, , 16F
C沒有new
09/08 00:13, 16F

09/08 01:22, , 17F
C++和Java的意思是不一樣的...
09/08 01:22, 17F

09/08 07:05, , 18F
C有static
09/08 07:05, 18F
文章代碼(AID): #1CXZxHKB (java)
文章代碼(AID): #1CXZxHKB (java)