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