Re: [問題] new 語法的疑問

看板java作者 (潛水初號機)時間14年前 (2010/01/01 18:38), 編輯推噓4(4016)
留言20則, 9人參與, 最新討論串3/10 (看更多)
: : Circle c1 = new Circle(); // 建立Circle類別的副本,名字是c1 : ^^^^ : 根本不是什麼副本。 : Circle c1 有一指向 Circle 的 "指標" (reference),叫 c1 : new Circle() 生成一個新的 Circle 物件 (或 實例 instance) : c1 = .... 把 c1 指向剛生來來的那個物件 : (指標不是通用的 "reference" 的翻譯,但我覺得這裡這樣說比較 : 容易理解一點) : : 但是下面這行就讓我亂掉了 : : Shape c2 = new Circle(); // 這行我無法用中文翻譯-_- : 有一指向 "Shape" 的指標 叫 c2 : 指向 新生成的 Circle 物件 : : 所以我想弄懂的是 : : 最前面的 Circle、Shape 跟最後面的Circle、Shape 各代表什麼意思 : : A c1 = new A(); : : 2個A分別代表的意思 例如:前面的A是參考物件 後面的A是??? : 前面是宣告了一個 A 的 reference, 叫 c1 : 後面是 生成一個新的 A 物件 : : 附上 此範例程式碼 : (43) 自製鳥圖解: __________ ∣________∣ new (指標?)c1--> ∣_Circle_∣--------- ↑ ∣________∣ ∣ ∣ ∣________∣ ∣ ∣ ↓ ∣ Circle的物件 ∣ ________ ∣ | | ---------------------| | 把Circle物件指向c1 (=?) |________| 我理解是這個樣子 不知是不是了-_-" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.41.129.216

01/01 18:42, , 1F
JAVA沒有指標,所以不要把指標的觀念帶入JAVA… =_=|||
01/01 18:42, 1F

01/01 18:47, , 2F
reference 的本質就是指標啊。XD
01/01 18:47, 2F

01/01 18:52, , 3F
JVM遇到new時,會配置一塊記憶體(向作業系統借記憶體)
01/01 18:52, 3F

01/01 18:58, , 4F
所以reference 還是不知他有沒有作用-_- 暈 真難懂
01/01 18:58, 4F

01/01 18:58, , 5F
根據class的內容在這塊記憶體內建立 cl 物件的實體。
01/01 18:58, 5F

01/01 19:03, , 6F
學Java就要用Java的術語,一直在那邊指標來指標去...
01/01 19:03, 6F

01/01 19:04, , 7F
class類別不吃記憶體,經過new生成的物件才有吃記憶體~
01/01 19:04, 7F

01/01 19:09, , 8F
JAVA不用指標基本上是為方便,指標工作是丟給JVM去做的~
01/01 19:09, 8F

01/01 19:11, , 9F
那為什麼不要 c1 = new Circle; 這樣子就好 還要多加...
01/01 19:11, 9F

01/01 19:14, , 10F
因為JAVA是源自於C++,C++:Circle* cl = new Circle();
01/01 19:14, 10F

01/01 19:17, , 11F
有概念了 感謝幾位幫忙解答 非常感謝
01/01 19:17, 11F

01/01 19:27, , 12F
Java源自於C++的說法是哪來的?
01/01 19:27, 12F

01/01 19:31, , 13F
@erotic: 我是故意寫指標的,叫ref 容易混淆
01/01 19:31, 13F

01/01 21:05, , 14F
並非每個Java初學者都有學過C,會混淆的話,那是個人問題
01/01 21:05, 14F

01/01 21:59, , 15F
樓上:指標字面意思比 reference/參考 清楚得多
01/01 21:59, 15F

01/01 22:03, , 16F
我說過了,那是個人問題,你清楚,別人未必清楚,謝謝指教
01/01 22:03, 16F

01/01 22:04, , 17F
每本書有不同的描述方式,為什麼版友不能有不同的描述角度!?
01/01 22:04, 17F

01/01 22:55, , 18F
c沒物件概念吧....
01/01 22:55, 18F

01/02 05:39, , 19F
C要寫成oo也行吧,只是很麻煩
01/02 05:39, 19F

01/02 08:21, , 20F
C 的 OO 請參考 GTK+,經典範例。:p
01/02 08:21, 20F
文章代碼(AID): #1BFT2QZi (java)
討論串 (同標題文章)
文章代碼(AID): #1BFT2QZi (java)