




已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第11章 接口與內(nèi)部類(lèi),接口是什么?接口有什么作用?如何使用接口?這些都是本章需要解決的問(wèn)題。本章將詳細(xì)地講述接口的概念,并以實(shí)戰(zhàn)結(jié)合的方式,學(xué)習(xí)這些抽象概念。本章還會(huì)介紹內(nèi)部類(lèi)的相關(guān)知識(shí),包括內(nèi)部類(lèi)的種類(lèi)和內(nèi)部類(lèi)的使用環(huán)境等等。,11.1 接口,接口同繼承、多態(tài)一樣,都是Java程序語(yǔ)言的特色。它貫穿了整個(gè)Java程序開(kāi)發(fā),是對(duì)繼承的很好補(bǔ)充,其原因下面會(huì)詳細(xì)的講述。,11.1.1 接口概念的引入,為什么在買(mǎi)USB電腦鼠標(biāo)的時(shí)候,不需要問(wèn)電腦配件的商家,USB鼠標(biāo)是什么型號(hào)的?也不需要詢(xún)問(wèn)是滿(mǎn)足什么要求?原因就是USB接口是統(tǒng)一的、固定不變的一種型號(hào),是一種規(guī)范。所有的廠家都會(huì)按照這個(gè)規(guī)范,來(lái)制造USB接口的鼠標(biāo)。這個(gè)規(guī)范說(shuō)明制作該USB類(lèi)型的鼠標(biāo)應(yīng)該做些什么,但并不說(shuō)明如何做。而Java程序設(shè)計(jì)中的接口,也是一種規(guī)范。這個(gè)接口定義了類(lèi)應(yīng)該做什么?但不關(guān)心如何做?即接口中只有方法名,沒(méi)有方法體。,11.1.2 接口的概念,從專(zhuān)業(yè)的角度講,接口只是說(shuō)明類(lèi)應(yīng)該做什么,但并不指定應(yīng)該如何去做。在實(shí)際開(kāi)發(fā)過(guò)程中,通過(guò)類(lèi)來(lái)實(shí)現(xiàn)接口。接口只有方法名沒(méi)有方法體,實(shí)現(xiàn)接口就是讓其既有方法名又有方法體。下面就舉個(gè)有關(guān)接口的模型。(具體內(nèi)容請(qǐng)參照本書(shū)),11.1.3 接口的聲明,接口的聲明很簡(jiǎn)單,使用關(guān)鍵字“Interface”來(lái)聲明。接口的形式跟類(lèi)很相似,但要記住接口是接口,類(lèi)是類(lèi),兩者不能混為一談。接口是要求類(lèi)如何做的一套規(guī)范。下面將舉一個(gè)實(shí)例,來(lái)演示如何聲明接口。(具體內(nèi)容請(qǐng)參照本書(shū)),11.1.4 接口的實(shí)現(xiàn),接口的用處就是讓類(lèi)通過(guò)實(shí)現(xiàn)它,來(lái)執(zhí)行一定的功能。下面通過(guò)實(shí)例演示接口的實(shí)現(xiàn)功能,在看實(shí)例之前,先看看這個(gè)實(shí)例的流程,如圖11.1所示。(具體內(nèi)容請(qǐng)參照本書(shū)),11.1.5 接口的多重實(shí)現(xiàn),前面提到過(guò)接口能夠補(bǔ)充繼承的不足,現(xiàn)在講解如何補(bǔ)充。繼承必須是單繼承的,即一個(gè)類(lèi)繼承另一個(gè)類(lèi)后,那這個(gè)類(lèi)就不能繼承其他類(lèi)。而接口則無(wú)所謂,一個(gè)類(lèi)可以實(shí)現(xiàn)一個(gè)接口,也可以同時(shí)實(shí)現(xiàn)另一個(gè)接口。使用接口為編程提供了很大的方便,可以把上面的程序段修改一下。為了能更好的理解這個(gè)程序,先看看程序的流程,如圖11.2所示。(具體內(nèi)容請(qǐng)參照本書(shū)),11.1.6 接口的屬性,接口不是一個(gè)類(lèi),正因?yàn)槠洳皇且粋€(gè)類(lèi),所以不能使用關(guān)鍵字“new”生成一個(gè)接口的實(shí)例。雖然這樣,還是可以聲明一個(gè)接口變量,如:“school sc”。如果要生成一個(gè)接口的實(shí)例,可以讓接口變量,指向一個(gè)已經(jīng)實(shí)現(xiàn)了此接口的類(lèi)的對(duì)象,如下面的例子。(具體內(nèi)容請(qǐng)參照本書(shū)),11.1.7 接口的繼承,接口從某些方面具有類(lèi)的一些特性,如有方法、有屬性,那么是否像類(lèi)一樣可以繼承?回答是肯定的。接口的繼承和類(lèi)的繼承一樣,也是用關(guān)鍵字“extends”來(lái)實(shí)現(xiàn),下面先看一個(gè)有關(guān)接口繼承的實(shí)例。實(shí)例的流程如圖11.3所示。(具體內(nèi)容請(qǐng)參照本書(shū)),11.1.8 接口意義,接口不僅僅是一種規(guī)范,還是一種編程的思路。接口的所有方法和屬性,都代表了后面將要設(shè)計(jì)的類(lèi)的基本思路,這些方法就代表著這個(gè)程序的需求,所以掌握好接口,對(duì)學(xué)好Java程序開(kāi)發(fā)非常關(guān)鍵。(具體內(nèi)容請(qǐng)參照本書(shū)),11.2 內(nèi)部類(lèi),內(nèi)部類(lèi)就是在一個(gè)類(lèi)的內(nèi)部再創(chuàng)建一個(gè)類(lèi)。下面介紹如何使用內(nèi)部類(lèi)編寫(xiě)程序代碼,并了解內(nèi)部類(lèi)在編寫(xiě)代碼的過(guò)程中,為程序員提供了哪些方便和優(yōu)點(diǎn)。(具體內(nèi)容請(qǐng)參照本書(shū)),11.2.1 使用內(nèi)部類(lèi)來(lái)訪問(wèn)對(duì)象,下面將舉個(gè)有關(guān)內(nèi)部類(lèi)的實(shí)例,在分析這個(gè)實(shí)例之前,先了解這個(gè)實(shí)例的流程,如圖11.4所示。(具體內(nèi)容請(qǐng)參照本書(shū)),11.2.2 局部?jī)?nèi)部類(lèi),本小節(jié)通過(guò)對(duì)比局部變量,來(lái)學(xué)習(xí)局部?jī)?nèi)部類(lèi)。局部變量就是在某個(gè)類(lèi)的方法中定義的變量,它的作用范圍就在這個(gè)方法體內(nèi)。同樣局部?jī)?nèi)部類(lèi)就是在類(lèi)的方法中定義的一個(gè)內(nèi)部類(lèi),它的作用范圍也在這個(gè)方法體內(nèi)。把上面的實(shí)例修改一下,學(xué)習(xí)局部?jī)?nèi)部類(lèi)的使用。這個(gè)實(shí)例的流程,如圖11.5所示。(具體內(nèi)容請(qǐng)參照本書(shū)),11.2.3 靜態(tài)內(nèi)部類(lèi),當(dāng)一個(gè)內(nèi)部類(lèi)不需要引用它的外部類(lèi)的方法、屬性值時(shí),可以將這個(gè)類(lèi)設(shè)置為“static”,這就是靜態(tài)內(nèi)部類(lèi)。既然是靜態(tài)的,包含它的類(lèi)要引用它時(shí),就可以不必創(chuàng)建對(duì)象,直接引用。在靜態(tài)內(nèi)部類(lèi)中只能訪問(wèn)外部類(lèi)的靜態(tài)成員。構(gòu)造靜態(tài)內(nèi)部類(lèi)對(duì)象,不再需要構(gòu)造外部類(lèi)對(duì)象。(具體內(nèi)容請(qǐng)參照本書(shū)),11.2.4 匿名內(nèi)部類(lèi),在編寫(xiě)程序代碼時(shí),不一定要給內(nèi)部類(lèi)取一個(gè)名字,可以直接以對(duì)象名來(lái)代替。在圖形化編程的事件監(jiān)控器代碼中,會(huì)大量使用匿名內(nèi)部類(lèi),這樣可以大大的簡(jiǎn)化代碼的編寫(xiě),并增強(qiáng)了代碼的可讀性。(具體內(nèi)容請(qǐng)參照本書(shū)),11.3 常見(jiàn)疑難解答,(具體內(nèi)容請(qǐng)參照本書(shū)),11.3.1 匿名類(lèi)如何在程序中使用,答:匿名類(lèi)是一種特殊的局部?jī)?nèi)部類(lèi),用來(lái)繼承一個(gè)類(lèi)或者實(shí)現(xiàn)一個(gè)接口。匿名內(nèi)部類(lèi)不能定義構(gòu)造方法匿名內(nèi)部類(lèi)。在編譯的時(shí)候由系統(tǒng)自動(dòng)起名Out$1.class。如果一個(gè)對(duì)象編譯時(shí)的類(lèi)型是接口,那么其運(yùn)行的類(lèi)型是實(shí)現(xiàn)這個(gè)接口的類(lèi),因?yàn)槟涿麅?nèi)部類(lèi)無(wú)構(gòu)造方法,所以其使用范圍非常的有限。,11.3.2 接口與繼承有什么區(qū)別,答:接口在本質(zhì)上
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年軟考網(wǎng)絡(luò)管理員考試復(fù)習(xí)指導(dǎo)試題及答案
- 2025年網(wǎng)絡(luò)管理員考試心得試題及答案
- 第二次月考提升卷(Unit 4、Unit 5)(含答案)-2024-2025學(xué)年人教精通版英語(yǔ)六年級(jí)下冊(cè)
- 學(xué)習(xí)云原生技術(shù)考試考題及答案解析
- 2025合同范本 租房協(xié)議書(shū)
- 2025法學(xué)概論考試的常見(jiàn)問(wèn)題及試題及答案
- 學(xué)期重點(diǎn)項(xiàng)目與計(jì)劃推進(jìn)
- 保安人員心理素質(zhì)提升的實(shí)踐方案計(jì)劃
- 2025帶薪休假合同「下載」
- 信息處理技術(shù)員商務(wù)溝通題及答案
- GB/T 26251-2010氟和氟氮混合氣
- GB/T 24815-2009起重用短環(huán)鏈吊鏈等用6級(jí)普通精度鏈
- 無(wú)機(jī)化學(xué)氧族元素課件
- 儲(chǔ)煤場(chǎng)管理制度(6篇)
- 線描畫(huà)基本功教學(xué)課件
- 齒軌卡軌車(chē)課件
- 醫(yī)院工會(huì)經(jīng)費(fèi)使用與管理辦法、制度規(guī)則
- 重癥胰腺炎(1)課件
- 克拉潑改進(jìn)型電容三點(diǎn)式振蕩器
- 介入導(dǎo)管室耗材準(zhǔn)備及管理
- SPC基礎(chǔ)知識(shí)培訓(xùn)教材-入門(mén)級(jí)_課件
評(píng)論
0/150
提交評(píng)論