《數據結構與抽象:Java語言描述(原書第4版)》一P.3.1 寫一個接口
本節書摘來華章計算機《數據結構與抽象:Java語言描述(原書第4版)》一書中的第1章 ,第1節,[美]弗蘭克M.卡拉諾(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. Henry) 著 羅得島大學 新英格蘭理工學院 辛運幃 饒一梅 譯 更多章節內容可以訪問雲棲社區“華章計算機”公眾號查看。
P.3.1 寫一個接口
Java接口的開頭很像類的定義,不過要用保留字interface替代class。即接口的開頭是如下的語句
接口可以含有任意多個公有方法頭,每個方法頭的後麵是一個分號。接口不聲明類的構造方法,也不能聲明靜態或終態方法。注意,接口中的方法默認是公有的,故在方法頭中可以省略puclic。接口還可以定義任意個公有命名常量。
示例。想象如圓、正方形或一塊地這樣的對象,它們既有周長又有麵積。假定我們想讓這種對象的類有一個返回數量值的get方法。如果實現這些類的程序員不是同一個人,則他們可能會用不同的方式來說明這些方法。為確保定義這些方法的類有統一的格式,我們可以寫一個接口,如程序清單P-1所示。這個接口為程序員提供了方法說明的簡單概要。程序員應該不必查看實現它們的類就能使用這些方法。
將接口定義保存在一個與接口名同名的文件中,後麵加上.java。例如,前麵這個接口在文件Measurable.java中。
程序設計技巧:Java接口是寫注釋的好地方,用來說明每個方法的目的、參數、前置條件及後置條件。用這種方式,可以在一個文件中說明一個類,而在另一個文件中實現它。
注:接口可以聲明數據域,但它們必須是公有的。通常,類的數據域是私有的,故接口中的任何數據域表示的都應該是命名常量。所以它們應該是公有的、終態的及靜
態的。
注:接口中聲明的方法不能是靜態的,也不能是終態的。但是,可以在實現接口的類中聲明這樣的方法。
示例。假定你想定義人名的類。最開始或許定義程序清單P-2所示的Java接口,為這個人名類說明方法。限於篇幅,我們隻為最開始的兩個方法添加了注釋。這個接口說明了類中所需要的方法。當實現附錄D中程序清單D-1所示的如Name這樣的類時可以使用它。另外,隻看這個接口,就應該能為類寫一個客戶。
注意,方法giveLastNameTo的參數的數據類型是NameInterface而不是Name。我們將在後麵談論接口當作數據類型的話題。現在,隻需知道接口不應該限製實現它的類的名字。
注:命名一個接口
接口名,特別是Java中那些標準的接口名,常常以“able”結尾,例如Measurable。這樣的結尾並不總能提供一個好名字,所以也經常使用“er”或“Interface”作為結尾。與Java的異常以“Exception”為結尾一樣,接口經常以“Interface”作為結尾。
最後更新:2017-06-26 14:32:05