[問題] java考題(有幾個物件生成)

看板java作者 (@@)時間5年前 (2018/12/23 23:26), 編輯推噓6(606)
留言12則, 8人參與, 5年前最新討論串1/1
class Dog { Dog() { try { throw new Exception(); } catch (Exception e) { } } } class Test { public static void main(String[] args) { Dog d1 = new Dog(); Dog d2 = new Dog(); Dog d3 = d2; // do complex stuff } } 這是一個考題 問的是走到// do complext stuff時共有幾個物件被生成 參考答案是4個 但我怎麼覺得只有兩個(d1, d2) d3應該只是reference 請問答案是正確的嗎? 如果是正確的 那多出來的兩個物件是在哪邊生成的? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 108.5.129.170 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1545578787.A.E8B.html

12/23 23:28, 5年前 , 1F
new execution
12/23 23:28, 1F

12/23 23:30, 5年前 , 2F
自動選字選錯... new Exception ()也生了一個物件
12/23 23:30, 2F

12/24 03:18, 5年前 , 3F
那請問Dog d3 = d2;也有生一個?
12/24 03:18, 3F

12/24 06:43, 5年前 , 4F
d3跟d2是指向同一個物件,沒有生新的
12/24 06:43, 4F

12/24 06:44, 5年前 , 5F
所以是生成兩個Dog,在建構式中各生成一個Exception
12/24 06:44, 5F

12/24 06:45, 5年前 , 6F
共四個物件
12/24 06:45, 6F

12/24 22:15, 5年前 , 7F
懂了 題目沒指定DOG物件 所以要把Exception也算進去..
12/24 22:15, 7F

12/24 22:45, 5年前 , 8F
謝謝
12/24 22:45, 8F

12/25 11:45, 5年前 , 9F
至少 5 個啦!args 是啊!…XD
12/25 11:45, 9F

12/25 11:47, 5年前 , 10F
還有… Class 的實例要不要算啊?...XD
12/25 11:47, 10F

12/25 17:32, 5年前 , 11F
這種題目很無聊,沒指定type啊
12/25 17:32, 11F

12/25 18:43, 5年前 , 12F
喔喔喔 Exception被做成物件今天才學到
12/25 18:43, 12F
文章代碼(AID): #1S7waZwB (java)