Given the code fragment
1 2 3 4 5 6 7 8 9 10 |
class Test2 { int fvar; static int cvar; public static void main(String[] args) { Test2 t = new Test2(); // insert code here to write field variables } } |
Which code fragments, inserted independently, enable the code compile?
A.
8 |
t.fvar = 200; |
B.
8 |
cvar = 400; |
C.
8 9 |
fvar = 200; cvar = 400; |
D.
8 9 |
this.fvar = 200; this.cvar = 400; |
E.
8 9 |
t.fvar = 200; Test2.cvar = 400; |
F.
8 9 |
this.fvar = 200; Test2.cvar = 400; |
題解
選項A,用物件實體的參考變數去存取物件實體的欄位,這個正確。
選項B,直接在靜態方法「main」裡面使用靜態的欄位,這個也正確。
選項C,直接在靜態方法「main」裡存取物件實體的欄位,因為沒有物件,所以無法存取。
選項D,直接在靜態方法「main」裡使用「this」來表示目前的物件實體,因為沒有物件,所以無法存取。
選項E,用物件實體的參考變數去存取物件實體的欄位,和用類別名稱去存取類別欄位,這個也正確。
選項F,不能使用「this」,理由同選項D。