Given the code fragment
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.
t.fvar = 200;
B.
cvar = 400;
C.
fvar = 200;
cvar = 400;
D.
this.fvar = 200;
this.cvar = 400;
E.
t.fvar = 200;
Test2.cvar = 400;
F.
this.fvar = 200;
Test2.cvar = 400;
題解
選項A,用物件實體的參考變數去存取物件實體的欄位,這個正確。
選項B,直接在靜態方法「main」裡面使用靜態的欄位,這個也正確。
選項C,直接在靜態方法「main」裡存取物件實體的欄位,因為沒有物件,所以無法存取。
選項D,直接在靜態方法「main」裡使用「this」來表示目前的物件實體,因為沒有物件,所以無法存取。
選項E,用物件實體的參考變數去存取物件實體的欄位,和用類別名稱去存取類別欄位,這個也正確。
選項F,不能使用「this」,理由同選項D。