Given:



A.

a, e
i, o

B.

a, e
o, o

C.

e, e
I, o

D.

e, e
o, o

題解

這裡是考Java永遠為「pass by value」的觀念。

var1和var2是基本型別變數,直接儲存資料的數值;而var是物件參考變數,儲存物件的參考(Reference),類似記憶體位址的值。在傳遞變數的過程中,Java只會傳遞變數的「值」。

第6~8行,var1一開始儲存'a',然後var1再將'a'傳給var2儲存,最後再讓var2儲存'e'這個值。所以此時var1存的是'a',var2存的是'e'。

第10~11行,obj1指到一個新實體化的Vowel物件,接著再將這個物件的參考也讓obj2儲存。所以此時obj1和obj2這兩個變數所指到的物件是同一個。

第12~13行,只是在修改同一個Vowel物件的var變數,最後Vowel物件的var變數存的值為'o'。