[OCAJP]物件變數與參考


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'。

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章