淺析Java程序設(shè)計(jì)中的接口_第1頁
淺析Java程序設(shè)計(jì)中的接口_第2頁
淺析Java程序設(shè)計(jì)中的接口_第3頁
淺析Java程序設(shè)計(jì)中的接口_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、    淺析java程序設(shè)計(jì)中的接口    摘 要:接口是java語言中最為重要的概念,也是使用為廣泛的功能。在軟件產(chǎn)品的生產(chǎn)過程中,一直都希望它可以像硬件一樣,具有面向組件、接口似的開發(fā)特點(diǎn)。所以,在面向?qū)ο蟪绦蛟O(shè)計(jì)語言中、引入了抽象編程的概念。在java語言中,接口是實(shí)現(xiàn)抽象編程的關(guān)鍵技術(shù)。接口是java學(xué)習(xí)中最重要的概念,可以說接口是java的靈魂。本文將從接口的概述、接口的定義、接口的作用、接口的意義以及接口的應(yīng)用等方面論述。關(guān)鍵詞:java語言;接口;計(jì)算機(jī);一、接口的概述接口的概念比較抽象,可以理解為接口是一系列方法和特征的集合。方法和特征是

2、類的組成部分,如果從編程的角度而言,java的接口可以對(duì)應(yīng)java中特定的語法結(jié)構(gòu)。java接口與java抽象類是不一樣的, 抽象類可以實(shí)現(xiàn)某些方法,而接口則不能。下面,從接口的概念和功能上迸一步詳細(xì)述其存在的意義。接口的概念就比如工廠模式,用工廠模式來實(shí)例化對(duì)象。工廠模式可以比喻為生產(chǎn)車的一個(gè)車間,利用車間生產(chǎn)出各種類型的車輛?,F(xiàn)在要利用車間生產(chǎn)出汽車、卡車、跑車、公交車,四種車型。在工廠模式中,首先要有建設(shè)車型的一個(gè)一個(gè)標(biāo)準(zhǔn),就是一個(gè)具體的框架類。有了框架之后,要設(shè)計(jì)出汽車、卡車、跑車、公交車四種不同的車型,在標(biāo)準(zhǔn)類的基礎(chǔ)上添加抽象方法,通過添加汽車、卡車、跑車、公交車的抽象方法來決絕問題

3、,添加抽象方法。有了抽象方法之后,利用具體類來實(shí)現(xiàn)。當(dāng)中添加抽象方法的過程就是接口,利用接口來連接生產(chǎn)車的框架功能,和實(shí)現(xiàn)上產(chǎn)車的具體功能。二、java接口的定義現(xiàn)實(shí)世界中的接口有usb接口,充電器接口,電腦接口?,F(xiàn)實(shí)世界中接口的作用是鏈接兩個(gè)物體,是起連接作用。java中接口作用與現(xiàn)實(shí)世界中普通接口一樣,鏈接不同的功能模塊,實(shí)現(xiàn)功能與功能之間的交互。在今后的開發(fā)中接口是使用頻率最高的組件。如果一個(gè)功能中只有全局常量和抽象方法,那么我們稱這個(gè)功能為接口,沒有普通屬性,沒有普通常量,更沒有構(gòu)造方法,沒有第三個(gè)組成部分,這就是接口的定義也相對(duì)簡(jiǎn)單。 要定義一個(gè)接口使用interface關(guān)鍵字完成,

4、interface在英文中的含義就是接口的含義比較好理解。接口把方法的特征和方法的實(shí)現(xiàn)分割開來。這種分割,體現(xiàn)在接口常常代表一個(gè)角色(role),它包裝與該角色相關(guān)的操作和屬性,而實(shí)現(xiàn)這個(gè)接口的類扮演這個(gè)角色的演員(類)。一個(gè)角色(接口)可以由不同的演員(類)來演,而不同的演員(類)之間除了扮演一個(gè)共同的角色(接口)之外,并不要求有任何其他的共同之處。三、java語言中定義接口的意義類所描述的是一個(gè)實(shí)體, 包含實(shí)體的狀態(tài)和動(dòng)作。一個(gè)實(shí)體能發(fā)出的動(dòng)作由接口來定義。那么在類中對(duì)一個(gè)接口的定義,從本質(zhì)上講,跟在抽象類中定義一個(gè)接口一樣,也體現(xiàn)著它的抽象性,即它是可以變化的。從面向?qū)ο蟮乃枷雭砜?,要?/p>

5、裝好變化的部分。這可能涉及到的涉及模式:模板涉及模式/命令涉及模式,在這個(gè)util類里面封裝了會(huì)改變的worker,可以理解為,util類里面有自己的算法:一部分是固定的,而另外一部分是可變的,尚學(xué)堂陳老師指出這個(gè)可變的部分就變成了一個(gè)接口,接口則是特殊的抽象類, worker可能在不同的工作環(huán)境有不同的工作方式,例如work()、onvaction()等等 。因此在類中定義一個(gè)接口是有其必要性的,它代表著一種編程思想, 定義接口的目的是讓代碼有更強(qiáng)的可擴(kuò)展性。那么為何要定義接口?以及接口有何意義呢?那么關(guān)于接口的意義可以從以下幾點(diǎn)來進(jìn)行說明:定義接口的重要性:在java編程,abstract

6、 class和interface是支持抽象類定義的兩種機(jī)制。正是由于這兩種機(jī)制的存在,才使得java成為面向?qū)ο蟮木幊陶Z言;定義接口有利于代碼的規(guī)范:對(duì)于一個(gè)大型項(xiàng)目而言,會(huì)對(duì)一些主要的接口來進(jìn)行定義,或者清理一些沒有必要的接口。這樣做的目的一方面是為了給開發(fā)人員一個(gè)清晰的指示,告訴他們哪些業(yè)務(wù)需要實(shí)現(xiàn);同時(shí)也能防止由于開發(fā)人員隨意命名而導(dǎo)致的命名不清晰和代碼混亂,影響開發(fā)效率;有利于對(duì)代碼進(jìn)行維護(hù):比如你要做一個(gè)畫板程序,其中里面有一個(gè)面板類,主要負(fù)責(zé)繪畫功能,然后你就這樣定義了這個(gè)類??墒窃诓痪脤?,現(xiàn)有的類不能夠滿足需要,然后你又要重新設(shè)計(jì)這個(gè)類,更糟糕是你可能要放棄這個(gè)類,那么其他地方

7、可能有引用他,這樣修改起來很麻煩。如果你一開始定義一個(gè)接口,把繪制功能放在接口里,然后定義類時(shí)實(shí)現(xiàn)這個(gè)接口,然后你只要用這個(gè)接口去引用實(shí)現(xiàn)它的類就行了,以后要換的話只不過是引用另一個(gè)類而已,這樣就達(dá)到維護(hù)、拓展的方便性;保證代碼的安全和嚴(yán)密:一個(gè)好的程序一定符合高內(nèi)聚低耦合的特征,那么實(shí)現(xiàn)低耦合,定義接口是一個(gè)很好的方法,能夠讓系統(tǒng)的功能較好地實(shí)現(xiàn),而不涉及任何具體的實(shí)現(xiàn)細(xì)節(jié)。四、接口的作用通過接口可以實(shí)現(xiàn)不相關(guān)類的相同行為,而不需要了解對(duì)象所對(duì)應(yīng)的類。通過接口可以指明多個(gè)類需要實(shí)現(xiàn)的方法。類描述了一個(gè)實(shí)體,包括實(shí)體的狀態(tài),也包括實(shí)體可能發(fā)出的動(dòng)作。接口定義了一個(gè)實(shí)體可能發(fā)出的動(dòng)作。但是只是定

8、義了這些動(dòng)作的原型,沒有實(shí)現(xiàn),也沒有任何狀態(tài)信息。所以接口有點(diǎn)像一個(gè)規(guī)范、一個(gè)協(xié)議,是一個(gè)抽象的概念;而類則是實(shí)現(xiàn)了這個(gè)協(xié)議,滿足了這個(gè)規(guī)范的具體實(shí)體,是一個(gè)具體的概念。接口會(huì)出現(xiàn),關(guān)鍵的原因應(yīng)該是java中向上轉(zhuǎn)型的出現(xiàn),因?yàn)橄蛏限D(zhuǎn)型,子類中有一些父類中不存在的方法便不能繼續(xù)調(diào)用了。這樣就很麻煩,我們需要子類中的方法,但是這下該怎么辦呢?第一種在父類中加子類的方法。但是,這個(gè)方法在父類中其實(shí)真的沒有必要,方法函數(shù)體都不需要。所以會(huì)用抽象方法,這樣就有了抽象方法的誕生??墒蔷退氵@樣了,問題還是沒有解決,因?yàn)檎娴奶闊┝?,如果有其他的子類要繼承父類,也難免會(huì)有向上轉(zhuǎn)型的時(shí)候。于是就有了第二種方法

9、,接口便誕生了,這也解釋了為什么接口中都是抽象的方法!所以有了接口,子類中需要的方法,但是父類中沒有的方法可以直接用接口來完成,在多人合作完成一項(xiàng)工程的時(shí)候也更加的方便。從程序角度,簡(jiǎn)單理解,接口就是函數(shù)聲明,類就是函數(shù)實(shí)現(xiàn)。需要注意的是同一個(gè)聲明可能有很多種實(shí)現(xiàn)。五、接口的實(shí)際應(yīng)用電腦上可以使用u盤、打印機(jī)、mp3。這些設(shè)備都是連接到usb接口上的。要實(shí)現(xiàn)u盤、打印機(jī)、mp3在電腦上可以運(yùn)行使用的代碼,首先要分析怎么把u盤、打印機(jī)、mp3連接到電腦上。電腦、u盤、打印機(jī)、mp3都是類,分別寫出這些類的實(shí)現(xiàn)。所有的代碼要進(jìn)行開發(fā),一定要首先開發(fā)出usb接口標(biāo)準(zhǔn)。因?yàn)橛辛藰?biāo)準(zhǔn)后,電腦才可以使用這些標(biāo)準(zhǔn),設(shè)備廠商才可以設(shè)計(jì)usb設(shè)備。通過usb接口實(shí)現(xiàn)類與類之間的連接。并通過連接電腦來實(shí)現(xiàn)其功能。六、總結(jié)接口的出現(xiàn)意義在于改變了編程方法,決絕了java語言單繼承問題,接口通過多繼承方式實(shí)現(xiàn)了接口之間的多重繼承。 接口起到了連接不同功能模塊的作用,在java編程中,接口是最常使用的連接方式。在實(shí)現(xiàn)接口時(shí),除非實(shí)現(xiàn)了接口的類是抽象類,否則該類要定義接口中的所有方法。接口無法被實(shí)例化,但是可以被實(shí)現(xiàn)。一個(gè)實(shí)現(xiàn)接口的類,必須實(shí)現(xiàn)接口內(nèi)所描述的所有方法,否則

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論