看板 java 關於我們 聯絡資訊
※ 引述《SuperNeo (潛水初號機)》之銘言: : 目前正在自修JAVA,遇到問題只能看書、找良葛格、估狗大師 : 查完之後還是不太了解 new 的語法 : 僅知如: : 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) : 程式碼是手key的,有錯字請見諒 -_- : 因為看到字串的宣告部份又出現可怕的new運算子 : 所以才回頭用上述的前範例發問。 : 下面是陣列部份遇到不知差別在哪的語法: : //宣告一個int陣列 叫temp : int[] temp; 宣告一個 int array *的 reference* 叫 temp : //宣告一個int陣列 叫tips 並放入3個元素 : int[] tips = {100,200,500}; {100,200,500} 你想成是生成 array 的特別語法 這裡生成了一個三個元素的 array, 然後 tips 指向這個 array : //宣告一個倍精準的陣列"副本"? 叫scores。 並宣告他有5個元素? : double[] scores = new double[5]; new double[5]; 生成一個 5 元素大的 double 的 array. scores = ..... score 指向該 array : 不懂為何這理要多一個new運算子 : -----------------------------抱怨分隔線---------------------------- : 認識的朋友 都是C# .NET派流,所以自修的頗辛苦 這堆和 C# 的理解方法沒什麼分別。 : 加上英文又破,只要連結是英文的就沒耐心看完他。-_-" : 目前自修的書是 "Java2 程式設計範本 陳會安著" : 一直在Console地方排迴,字串章節部份 突然又 : 暴增一堆語法實在很難消化…也記不起來 Orz : 到現在連個自用小零用金的應用程式也寫不出來 : 但直接跳SWING章節 又太多看不懂的地方 : 實在是很沒自信心如何能coding出東西… : -----------------------------抱怨分隔線---------------------------- : 麻煩前輩指點new運算子的語法 萬分感謝。 new Foo(....); 生成一個 Foo 的物件,括號內的就是指明了用哪一個 constructor new Foo[n]; 生成一個 Foo 的 array, 共有 n 元素長。 new 就這兩種用法而已。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.77.15.226
godfat:我猜他副本是指 instance XD 台灣 MMORPG 用詞... 01/01 17:53
johnhmj:雖然 JAVA 沒有指標,因為源自於 C++,所以… 01/01 18:30
johnhmj:JVM 還是會給它跑指標。 01/01 18:33
SuperNeo:g大正解 我指的副本是instance的意思 書上也這麼寫 冏 01/01 18:41
johnhmj:是「實體」… =_=||| 01/01 18:45
dendrobium:副本...XD 01/01 18:50
SuperNeo:雖然以前wow打太多 不過有圖有真像- - 吃飽來補圖 01/01 19:03
godfat:我以前一直以為「副本」是指backup咧,想說不知道在備份啥 01/01 19:04
adrianshum:叫 "副本" 就代表有 "正本",這樣理解class和instance 01/01 19:29
ogamenewbie:Java源自於C++的說法是哪來的? 01/01 19:38
erotic:所以狗、貓都是哺乳動物的副本? 01/01 20:57
adrianshum:我之前沒回完:P 這樣理解是很有問題的 01/01 22:00
leosirius:其實就跟把reference稱為指標 instance稱為副本也沒錯 01/02 10:15
leosirius:只是把new的語法分作stack和heap部份來理解才比較完整 01/02 10:17
leosirius:wow的instance也是同樣的概念在運作~有副本不一定有正本 01/02 10:21
adrianshum:副本這字就是代表正本的copy 吧。這字留在學 Cloneable 01/02 10:37
adrianshum:或 Prototype pattern 才用吧。那才是 "副本" 01/02 10:39
leosirius:就叫它"instance"吧:p 翻的越多越模糊 01/02 18:43