天天看點

《Android遊戲開發詳解》——第2章,第2.12節設定和通路對象的狀态

本節書摘來自異步社群《android遊戲開發詳解》一書中的第2章,第2.12節設定和通路對象的狀态,作者 【美】jonathan s. harbour,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

2.12 設定和通路對象的狀态

android遊戲開發詳解

現在,我們可以通路一個phone對象了。myphone表示使用phone類(class)建立的一個單個的phone對象(object)。它是一個獨立的實體,獨立于我們将來可能使用藍圖(phone類)建立的任何其他phone對象。我們使用執行個體(instance)這個術語來描述這種現象。

為了更加具體地說明,讓我們考慮一下,在工廠中批量生産智能手機的時候會發生什麼情況。我們使用相同的藍圖來生産數以千計的裝置,而且它們都是彼此獨立的。它們可以有自己的屬性和行為,這意味着,關閉一個裝置不會影響到使用相同的藍圖生産的其他裝置。與此非常相似,由單個的類而建立的每一個對象,都是該類的一個獨立的執行個體(instance),并且接受各個變量的自己的副本,來描述對象的狀态。這些變量叫作執行個體變量(instance variable)。

我們現在可以開始修改myphone的狀态并且調用其行為了。讓我們先來為單個的phone對象的狀态指定一些初始值,如程式清單2.11所示(從第6行到第9行)。

程式清單2.11 world.java——更新後的版本

注意一下,我們是如何通路屬于phone對象的執行個體變量的。要擷取一個對象的特定的變量,使用點運算符。點運算符用來表示所有權。例如,myphone.poweredon表示屬于myphone對象的poweredon變量。

現在已經為phone對象的變量指定了一些初始值,myphone是描述性資料的一個集合。如果某人通路了我們的myphone對象,他通過列印myphone的目前狀态的值,就能夠完全知道其狀态了,如程式清單2.11所示(從第11行到第15行)。

程式清單2.12 world.java—更新後的版本

正如你所看到的,我們能夠将有意義的資料組織到一個集合中,即一個phone對象中,這個對象的名稱是myphone。myphone現在是一個複雜的資訊集合。我們将在後面的小節中介紹這一點如何有用。

繼續閱讀