看板 java 關於我們 聯絡資訊
: : 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
johnhmj:JAVA沒有指標,所以不要把指標的觀念帶入JAVA… =_=||| 01/01 18:42
brianhsu:reference 的本質就是指標啊。XD 01/01 18:47
johnhmj:JVM遇到new時,會配置一塊記憶體(向作業系統借記憶體) 01/01 18:52
SuperNeo:所以reference 還是不知他有沒有作用-_- 暈 真難懂 01/01 18:58
johnhmj:根據class的內容在這塊記憶體內建立 cl 物件的實體。 01/01 18:58
erotic:學Java就要用Java的術語,一直在那邊指標來指標去... 01/01 19:03
johnhmj:class類別不吃記憶體,經過new生成的物件才有吃記憶體~ 01/01 19:04
johnhmj:JAVA不用指標基本上是為方便,指標工作是丟給JVM去做的~ 01/01 19:09
SuperNeo:那為什麼不要 c1 = new Circle; 這樣子就好 還要多加... 01/01 19:11
johnhmj:因為JAVA是源自於C++,C++:Circle* cl = new Circle(); 01/01 19:14
SuperNeo:有概念了 感謝幾位幫忙解答 非常感謝 01/01 19:17
ogamenewbie:Java源自於C++的說法是哪來的? 01/01 19:27
adrianshum:@erotic: 我是故意寫指標的,叫ref 容易混淆 01/01 19:31
erotic:並非每個Java初學者都有學過C,會混淆的話,那是個人問題 01/01 21:05
adrianshum:樓上:指標字面意思比 reference/參考 清楚得多 01/01 21:59
erotic:我說過了,那是個人問題,你清楚,別人未必清楚,謝謝指教 01/01 22:03
qrtt1:每本書有不同的描述方式,為什麼版友不能有不同的描述角度!? 01/01 22:04
rofellosx:c沒物件概念吧.... 01/01 22:55
dendrobium:C要寫成oo也行吧,只是很麻煩 01/02 05:39
brianhsu:C 的 OO 請參考 GTK+,經典範例。:p 01/02 08:21