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。