Given the code fragment:
public class Test {
static int count = 0;
int i = 0;
public void changeCount() {
while (i < 5) {
++i;
count++;
}
}
public static void main(String[] args) {
Test check1 = new Test();
Test check2 = new Test();
check1.changeCount();
check2.changeCount();
System.out.println(check1.count + " : " + check2.count);
}
}
What is the result?
A.
10 : 10
B.
5 : 5
C.
5 : 10
D. Compilation fails
題解
「count」是類別(靜態)變數,就算Test類別被實體化成許多個物件,用來儲存「count」的記憶體空間也都還是一開始的那個。
check1和check2物件分別執行一次「changeCount」方法,將Test類別的「count」類別變數從0開始,加1加了10次。因此最後「count」類別變數儲存的值為10,輸出「10 : 10」。