Q131.
有一個Java 類別A 定義如下,下列敘述那些正確?
電腦軟體設計(JAVA) · 乙級 · Java · Q131
難易度分析
4 / 5
本題採複選形式,要求考生同時掌握物件實體化的正確語法、建構子多載的邏輯以及成員變數的數值追蹤,需對多個選項的正確性進行完整判定,增加了分析複雜度。
正確答案 (複選):①, ④
- ① A a = new A(3,5); 則a.Sum() 之值為8:呼叫雙參數建構子 A(int m, int n) 傳入 (3,5),使 x=3, y=5,故 Sum() 回傳 x+y = 8,敘述正確。
- ④ A a = new A(2,5) A b = new A(a.Sum(),0) 則b.Sum() 之值為7:a = new A(2,5) 使 a.Sum() = 7,接著 b = new A(7,0) 使 b 的 x=7, y=0,故 b.Sum() 回傳 7,敘述正確。
錯誤選項解析
- ② A a = new A:此為語法錯誤,new A 缺少括號,Java 中實體化物件必須使用 new A() 或 new A(參數) 的完整語法。
- ③ ; 則a.Sum() 之值為3(3)A a =new A(); 則a.Sum() 之值為0:呼叫無參數建構子 A() 會初始化 x=0, y=5,故 Sum() 回傳值應為 5 而非 0。
Learning Tip
"本題考 Java 建構子多載 (Constructor Overloading) 與物件實體化語法。常考陷阱:(1) 區分無參數建構子與雙參數建構子的初始值差異;(2) new A 缺少括號是常見語法錯誤;(3) 注意建構子內成員變數的賦值邏輯,Sum() 結果取決於 x、y 的實際初始化值。"
學員答題分佈
①A a = new A(3,5); 則a.Sum() 之值為80%
②A a = new A0%
③; 則a.Sum() 之值為3(3)A a =new A(); 則a.Sum() 之值為00%
④A a = new A(2,5) A b = new A(a.Sum(),0) 則b.Sum() 之值為70%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!