《Android遊戲開發詳解》一3 3 介面

2021-09-23 16:33:37 字數 1303 閱讀 1138

android遊戲開發詳解

接下來,我們介紹一種方法,使用所謂的介面(inte***ce),將物件分組為不同的類別。介面是乙個抽象(abstract)的類別,它描述了屬於該類別的物件的基本組成部分。為了更好地理解這一點,我們來學習乙個例項。

介面和類相似,但是,它有一些顯著的區別。如下所示是乙個human介面的樣子。

程式清單3.8 human介面

public inte***ce human
正如程式清單3.8所示,介面包含了各種抽象(abstract)的方法,它們沒有方法體。這些沒有方法體的抽象方法告訴我們,乙個human的物件分類必須能夠做什麼,但它們沒有指定必須要如何實現這些操作。

為了說明介面實際上是什麼,讓我們先不要看**。在你的腦海裡,想象一下作為乙個人類意味著什麼(你不必變得太富有哲理)。接下來,我們看看如下的列表,告訴我是否每個人都滿足你對於人類的看法:你的鄰居、你最好的朋友和你自己。

對於所有這些人,你可能會回答是的。這是因為,當我們讓你想一下對人類的看法的時候,你不會認為這是某乙個個別的人。相反,你會形成某種規則,即乙個人如何與他的世界互動,並且使用這種思路來判定不同人的人類特性。

介面大體上也是如此。程式清單3.8中的human介面,不是用來建立單個的human物件的。相反,它定義了乙個互動的模式,闡述了乙個human物件在你的程式中應該具有什麼樣的行為。它提供了一組基本的要求,如果要建立human型別的更多的具體版本(如king類)的話,必須要滿足這些需求,如程式清單3.9所示。

程式清單3.9 king類

public class king implements human 

public void walk()

public void urinate(int duration)

public void rule()

}

研究一下king類和human介面之間的關係,你會注意到一些事情。首先,king類宣告了它實現了human介面,作為程式設計師,我們就是這樣指定想要讓king類屬於human這個分類的。其次,king類宣告了程式清單3.8中給出的human介面中的所有3個方法,並且這個類為這些前面的抽象方法中的每乙個都提供了乙個具體的方法體。第三,king類有乙個額外的名為rule()的方法,這將其與泛型的human區分開來。

介面是一系列的協議。如果選取了乙個物件來實現乙個介面,該物件同意實現介面中的每乙個抽象方法。這意味著什麼呢?這意味著,乙個king物件,不管他想要保持多麼神秘,都必須實現所有的human介面的抽象方法,包括urinate()方法,因為國王畢竟也是人。如果不滿足這一需求,憤怒的jvm將會向他顯示紅色的錯誤訊息。

《Android遊戲開發詳解》一1 5 運算

android遊戲開發詳解 我們前面看到了,變數可以用來儲存值,並且變數可以在運算中用作運算數,如圖1 2所示。表1 1所列內容是你必須知道的5種算術運算。在了解示例的過程中,請記住如下兩條規則。規則 1涉及兩個整數的乙個運算,總是會得到乙個整數的結果 整型變數中不允許有小數值 規則 2至少涉及乙個...

《Android遊戲開發詳解》一3 4 多型

android遊戲開發詳解 你可能會問,為什麼我們必須建立乙個介面和乙個類,來定義乙個單個的king類呢?你可能會告訴自己,現在human介面還真的做不了太多事情,你說的絕對沒錯。使用介面允許我們建立一類物件,但是,在學習多型之前,我們很難意識到這對程式來說意味著什麼。來看一下如下所示的方法。pub...

Android遊戲開發 遊戲框架的搭建 3

5.影象模組 graphics 最後乙個模組是影象操作模組,用來繪製影象到螢幕上。不過要想高效能的繪製影象,就不得不了解一些基本的影象程式設計知識。讓我們從繪製2d影象開始,首先要了解的乙個問題是 影象究竟是如何繪製到螢幕的?答案相當複雜,我們不需要知道所有的細節。光柵 畫素和幀緩衝 framebu...