JAVA-初步認識-第十章-面向對象-接口的應用
一.
把接口這個知識,給它深化一下。
再開發的時候,先設計接口,再開發程序,最後考慮擴展功能。
定義應用程序之前,先把規則定義好。我的應用程序當中,就在使用這個規則。規則就是接口,後來的外加設備,就是接口的實現。
接口的兩個作用,定義規則使用規則,另一個就是實現規則。
接口是like,怎麽理解呢?子類實現了接口,usb是接口,usb的鼠標,usb的硬盤,都是像usb的一種,而不是usb的一種。繼承是is a,是裏面的一種。
截圖中的這一部分做個講解,原先沒有useMouse(Mouse m)這個方法,沒有鼠標。現在撬開電腦,焊上一個鼠標,就在BookPC中出現了一個useMouse的方法。如果還要增加功能的話,就要不斷往類中寫入方法,電腦就要不斷地撬開,焊上外設。這樣做不合適。
上面的截圖就在使用usb規則。從頭來解析這個截圖中的程序,首先電腦這個類是必須要有的,裏面封裝了很多東西。組成中最重要的一點,就是對於usb接口進行規定,和確保能夠使用usb接口。也就是說存在一個useUSB()的方法,裏面的參數就是USB接口類型的參數,每當在方法中放入USB接口類型的參數時,我們都可以對其進行操作,目前設定的操作就是開和關。為什麽主函數中的語句是useUSB(null);呢,null就是因為對象還不確定,對象就是後來要添加的外設。其實,最重要的是接口,以及函數的代碼位置的描述。useUSB()的方法和主函數同時存在,就是因為電腦存在的時候,必須確定規則,和明確要使用規則。接口的定義為什麽要放置在外面呢?要從上面的示例中回想,要將鼠標方法移動到電腦類的外面來,這是後加的。對於外設進行抽取,形成USB接口。但是最終在書寫代碼的時候,肯定是先寫USB接口的代碼,再去寫電腦的類。
上面兩張截圖,講解的順序是從上往下。先有上面一張,再有下面一張。如果類寫成class UPan是不行的,這樣的外設不匹配電腦的usb規則(定義的USB接口就是規則。規則定義在電腦類外面,能否使用定義在電腦類裏面。),所以要實現USB接口,要寫成class UPan implements USB即可。同時,U盤這個類中,還要有開關的方法。最後,主函數中useUSB()方法中就不是空了,就有了對象。
在這裏,電腦中要有接口設置,外設中也要有接口設置,這是兩部分。(實際開發中,通常會做成一部分,只需要子類中實現接口就行,往主函數裏一放,裏面就自動運行了。自己在編寫的時候,前面都是已經弄好的。電腦已經是弄好的,大家更多的是研究外圍設備。)
這樣,從整體來看,前期進行的設計準備,後期在往裏面添加設備時,照樣能用。
註意:接口類型的引用指向的都是子類對象,接口是無法創建對象的。
接口的三個特點在程序中的應用,
與一開始鼠標放置在主函數中相比,現在鼠標,U盤什麽的都是後來的,這樣耦合性變差了。
JAVA-初步認識-第十章-面向對象-接口的應用