程式設計基礎(虛擬碼追蹤)

類別 Counter 的每個實例各有一個整數型成員變數 count(建立時為0),方法 inc() 會將自己的 count 加1。執行下列程式後 x 的值為下列何者?

Counter: c1 ← new Counter()
Counter: c2 ← new Counter()
c1.inc()
c1.inc()
c2.inc()
c1.inc()
整數型: x ← c1.count × 10 + c2.count
  1. A13
  2. B31
  3. C44
查看答案與解析

正確答案:B. 31

在物件導向中,new Counter() 每次都會建立新的實例,因此 c1 與 c2 各自擁有不同的 count。c1.inc() 只增加 c1 的 count,因此 c1.count = 3、c2.count = 1。x = 3 × 10 + 1 = 31。成員變數的值是各實例分別保存的。

  • A. 這是把 c1 與 c2 的 count 弄反時的值。
  • B. 正確。c1.count = 3、c2.count = 1。
  • C. 這是以為 count 由所有實例共用時的值。成員變數是每個實例各有一份。
練習這個領域 前往領域頁面

相關計算工具

程式設計基礎(虛擬碼追蹤)的其他題目

  1. 類別 Counter 的每個實例各有一個整數型成員變數 count(建立時為0),方法 inc() 會將自己的 count 加1。Counter 型的變數中存放的不是實例本身,而是指向實例的參照。執行下列程式後 x 的值為下列何者?
  2. 下列程式原本打算用兩個指派敘述交換 x 與 y 的值。執行後 x 與 y 的值為下列何者?
  3. 下列程式將3個變數的值依序傳遞。執行後 a、b、c 的值為下列何者?
  4. 下列程式反覆將 x 乘以3。執行後 n 的值為下列何者?
  5. 下列 for 迴圈每次讓 i 增加2。執行後 s 的值為下列何者?