Java語言基礎12-存取方法(Access method)

存取方法(Access method) page 12 of 37


爲了讓實例變量的值能夠在需要的時候改變,我們應該提供一個方法來改變其值; 這種方法被特別地稱爲 存取方法(access method)。依照慣例,只是簡單的用來改變實例變量值的方法名稱應該以 "set" 開頭:

上例中的方法很有意思,它對兩個不同的變量用了同一個名字 barkSound。首先,作爲參數定義的barkSound 是一個新的叫聲(barking sound)。在此方法中所有對 barkSound 的沒有限定的引用都指的是這個作爲參數傳入的數據。但是,我們還有一個爲每個被初始化的狗(dog)提供的實例變量 barkSound。在Java(TM) 中,我們可以用特別的 "實例句柄(instance handle)" this 來指定 Dog當前實例。因此,

語句將實例變量 (this.barkSound 的當前值改變成 setBark() 的參數 (barkSound)傳入的新值。

爲了更明白地說明 this 變量,假訂我們爲 Dog 創建了一個實例叫 fido,然後執行 fido的方法 setBark()

setBark() 中的this 就是指 fido,更確切地說,this.barkSound 指的就是對象 fidobarkSound 實例變量。

DogChorus 的下面版本中,創建了一個對象 fido,將它的 barking 特徵從默認的 "Woof." 改變爲 "Ruff.",然後調用 barking 行爲:

經過這種修改,象 fido 這樣的對象,其特徵就可以由實例(狀態)變量的當前值 Dog 中方法所定義的行爲一起來反映。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章