版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Java程序設(shè)計任務(wù)驅(qū)動式指導(dǎo)教程目錄232任務(wù)一 搭建環(huán)境(構(gòu)建Java集成開發(fā)環(huán)境)任務(wù)二 Java歡迎你(開發(fā)簡單Java應(yīng)用程序任務(wù)三 小試牛刀(學(xué)習(xí)Java語言基礎(chǔ))任務(wù)四 挑戰(zhàn)選擇(使用分支控制流程)任務(wù)五 游戲人生(使用循環(huán)控制流程)任務(wù)六 回歸自然(創(chuàng)建、使用類和對象)任務(wù)七 3G時代的消息傳遞(定義和使用類方法)任務(wù)八 保護(hù)你的隱私(封裝的使用)任務(wù)九 子承父業(yè)(繼承和多態(tài)的使用)任務(wù)十 上帝萬能之手(接口的使用)目錄332任務(wù)十一 用數(shù)組存儲信息(使用數(shù)組)任務(wù)十二 使用字符串進(jìn)行交流(使用字符串)任務(wù)十三 防患于未然(捕獲并處理異常)任務(wù)十四 主動出擊(拋出異常)任務(wù)十五
2、 認(rèn)識Java Applet(Applet入門)任務(wù)十六 豐富多彩的Applet(在Applet中播放聲音和顯示圖像)任務(wù)十七 進(jìn)入Windows世界(設(shè)計圖形用戶界面)任務(wù)十八 布局規(guī)劃(使用布局管理器)任務(wù)十九 事件委托處理(如何處理事件)任務(wù)二十 選擇之道(使用選擇控件和選擇事件)目錄432任務(wù)二十一 簡明清晰的菜單(使用菜單和其他常用事件)任務(wù)二十二 訪問數(shù)據(jù)(使用JDBC連接數(shù)據(jù)庫)任務(wù)二十三 訪問數(shù)據(jù)升級(數(shù)據(jù)庫編程)任務(wù)二十四 文件管理(目錄與文件管理)任務(wù)二十五 順序進(jìn)出之道(文件的順序訪問)任務(wù)二十六 隨機(jī)進(jìn)出之道(文件的隨機(jī)訪問)任務(wù)二十七 JAVA的分身術(shù)(創(chuàng)建和啟動線程
3、)任務(wù)二十八 線程的生命周期與優(yōu)先級(線程的狀態(tài)與調(diào)度)任務(wù)二十九 基于連接的通信(Java中的套接字Socket)任務(wù)三十 基于無連接的通信(Java中的數(shù)據(jù)報編程)任務(wù)十 上帝萬能之手(接口的使用) 53221知識目標(biāo)能力目標(biāo)什么是接口;接口關(guān)鍵字;接口與多態(tài)的關(guān)系。為什么使用面向接口編程,面向接口編程的實現(xiàn);什么是常量;常量的定義規(guī)則。 掌握J(rèn)ava接口;理解Java接口與多態(tài)的關(guān)系;掌握面向接口編程的思想;掌握接口中常量的使用。 內(nèi)容提要6324跟我做:使用USB接口 1235實現(xiàn)方案 代碼分析 必備知識 動手做一做 10.1 跟我做:使用USB接口 任務(wù)情景電腦主板上的USB接口有嚴(yán)
4、格的規(guī)范,U盤、移動硬盤的內(nèi)部結(jié)構(gòu)不相同,每種盤的容量也不同,但U盤、移動硬盤都遵守了USB接口的規(guī)范,所以,在使用USB接口時,可以將U盤、移動硬盤插入任意一個USB接口,而不用擔(dān)心哪個USB接口是專門插哪個盤。請編寫程序,模擬使用USB接口的過程。運(yùn)行結(jié)果732第1章目錄10.2 實現(xiàn)方案 解決步驟采用接口技術(shù)后,把USB接口的特殊類稱為接口,U盤、移動硬盤類實現(xiàn)具體的功能。1.打開Eclipse,在study項目中創(chuàng)建包,再確定類名USB(接口名),得到接口的框架。package com.task10;public interface USBInterface /這是Java接口,相當(dāng)于
5、USB接口的規(guī)范2.然后,進(jìn)行抽象方法的聲明:public void start(); /抽象方法,開始使用public void stop();/停止使用3.接著,定義繼承類(實現(xiàn)類)MovingDisk:public class MovingDisk implements USBInterface /移動硬盤遵守了USB接口的規(guī)范 /詳細(xì)實現(xiàn)代碼參見832第1章目錄10.2 實現(xiàn)方案 4.再定義繼承類(實現(xiàn)類)UDisk:UDisk類代碼與MovingDisk類相似。5.定義UseUSB類使用USB接口,運(yùn)行程序。對UseUSB類能否正確使用MovingDisk類和UDisk類,能否將盤插
6、入到USB接口中進(jìn)行測試。代碼如下:USBInterface usb1= new MovingDisk();/將移動硬盤插入USB接口1USBInterface usb2= new UDisk();/將U盤插入USB接口2usb1.start();/開啟移動硬盤usb2.start();/開啟U盤usb1.stop();/關(guān)閉移動硬盤usb2.stop();/關(guān)閉U盤932第1章目錄10.3 代碼分析 程序代碼package com.task10;/* * USBInterface.java * 接口*/public interface USBInterface /這是Java接口,相當(dāng)于主板
7、上的USB接口的規(guī)范public void start(); public void stop();package com.task10;/* * MovingDisk.java * 實現(xiàn)類 */public class MovingDisk implements USBInterface /移動硬盤遵守了USB接口的規(guī)范public void start()/實現(xiàn)接口的抽象方法,移動硬盤有自己的功能System.out.println(移動硬盤插入,開始使用);public void stop()/實現(xiàn)接口的抽象方法,移動硬盤有自己的功能System.out.println(移動硬盤退出工作
8、);1032第1章目錄10.3 代碼分析 package com.task10;/* * UDisk.java * 實現(xiàn)類 */public class UDisk implements USBInterface /U盤遵守了USB接口的規(guī)范public void start()System.out.println(U盤插入,開始使用);public void stop()System.out.println(U盤退出工作);1132第1章目錄10.3 代碼分析 package com.task10;/* * UseUSB.java * 測試類,完成移動硬盤、U盤插入測試 */public c
9、lass UseUSB /* * param args */public static void main(String args) USBInterface usb1 = new MovingDisk();/將移動硬盤插入USB接口1USBInterface usb2= new UDisk();/將U盤插入USB接口2usb1.start();/開啟移動硬盤usb2.start();/開啟U盤usb1.stop();/關(guān)閉移動硬盤usb2.stop();/關(guān)閉U盤1232第1章目錄10.3 代碼分析 應(yīng)用擴(kuò)展增加主板類,再修改UseUSB類,將USB接口安裝在主板上,然后在UseUSB類中將
10、移動硬盤、U盤插入到主板的USB接口中。package com.task10;/* * MainBoard.java * 主板類,安裝USB接口 */class MainBoardpublic void useUSB(USBInterface usb)/通過這個方法,插入符合USB接口規(guī)范的盤usb.start();usb.stop();package com.task10;1332第1章目錄10.3 代碼分析 /* * UseUSB.java * 測試類,完成U盤、移動硬盤插入測試 */public class UseUSB public static void main(String ar
11、gs) MainBoard mainBoard=new MainBoard();USBInterface usb1=new MovingDisk();/在USB接口1上插入移動硬盤mainBoard. useUSB (usb1);USBInterface usb2=new UDisk();/在USB接口2上插入U盤mainBoard. useUSB (usb2);1432第1章目錄10.4 必備知識 10.4.1 Java接口1. 接口的概念接口是由常量和抽象方法組成的特殊類,是對抽象類的進(jìn)一步抽象。聲明接口時使用interface關(guān)鍵字。接口中的抽象方法在接口的實現(xiàn)類中被實現(xiàn),這些實現(xiàn)方法可
12、以具有完全不同的行為。2.為什么需要接口類與類之間通過繼承,子類共享父類的屬性和方法,但Java中只能實現(xiàn)單繼承,無法實現(xiàn)多繼承,借助于接口可以達(dá)到這一目的。繼承會形成樹形結(jié)構(gòu)的嚴(yán)格的層次關(guān)系,層數(shù)越多,靈活性越小,系統(tǒng)維護(hù)越復(fù)雜。采用接口,問題會迎刃而解。正確使用面向接口編程的思想,還會提高系統(tǒng)的可擴(kuò)展性及可維護(hù)性。3.接口的實現(xiàn)與使用接口的實現(xiàn)與使用分三個步驟。先聲明接口,再定義接口的實現(xiàn)類,最后使用接口。1532第1章目錄10.4 必備知識 聲明接口接口的聲明格式:public interface 接口名常量聲明;抽象方法聲明;例如,定義USB接口接口,有兩個抽象方法。public in
13、terface USBInterface /主板上的USB接口接口public void start(); /抽象方法public void stop();接口中的方法聲明只能寫成抽象方法的形式,不能帶方法體。注意:在接口中,定義的常量修飾符默認(rèn)為public static final,定義的方法修飾符默認(rèn)為public abstract,所以可以省去常量、方法聲明的修飾符。實現(xiàn)接口有了接口聲明,接下來就要實現(xiàn)接口,也就是要進(jìn)行實現(xiàn)類的定義。實現(xiàn)類的定義要使用implements關(guān)鍵字。例如,接口USBInterface的實現(xiàn)類MovingDisk的定義如下:1632第1章目錄10.4 必備知
14、識 public class MovingDisk implements USBInterface /實現(xiàn)了USB接口的接口public void start()/實現(xiàn)接口中的方法System.out.println(移動硬盤插入,開始使用);public void stop()/實現(xiàn)接口中的方法System.out.println(移動硬盤退出工作);牢記interface 和implements兩個關(guān)鍵字,基本上就把握住了接口的定義和實現(xiàn)。但是,還要注意,在實現(xiàn)類中,接口所有方法的方法體必須補(bǔ)寫完整,另外,方法的修飾符必須使用public。注意:一個類可以實現(xiàn)多個接口,但只能繼承一個父類。
15、接口的使用在程序中,常通過實現(xiàn)類來使用接口。例如,接口USBInterface的實現(xiàn)類MovingDisk的定義完成后,可以用以下方式使用。USB usb1 =new MovingDisk();/接口的使用usb1.start();/調(diào)用接口的方法173210.4 必備知識 改錯:關(guān)于接口的聲明有哪些錯誤?public interface Staff public String getInfo();public void speak()getInfo ();private void write();void work();提示:有2個錯誤。183210.4 必備知識 4.接口與抽象類通過前面的
16、學(xué)習(xí),從概念上能看出接口與抽象類的區(qū)別。一是使用的關(guān)鍵字不同。接口用的是interface,抽象類用的是abstract。二是方法的存在形式不同。接口中的方法是抽象方法,不能包含帶方法體的普通方法,抽象類中的方法既可以有抽象方法,也可以有普通方法。三是屬性上的處理不同。接口中的屬性是常量,而抽象方法中的屬性沒有限制。此外,使用上也有所不同。當(dāng)各個子類都存在一個共同的方法特征,但有各自不同的實現(xiàn)時,一般使用接口。接口與抽象類不是水火不相容的關(guān)系,相反,兩者是可以結(jié)合使用的,例如,抽象類可以實現(xiàn)接口。在實現(xiàn)時,接口中的抽象方法既可以全部實現(xiàn),也可以部分實現(xiàn),甚至一個都不實現(xiàn)。沒有實現(xiàn)的接口方法,抽
17、象類也不需要重新顯式聲明為抽象方法。這種情況下,抽象類的子類必須實現(xiàn)抽象類中的抽象方法,以及來自接口而抽象類沒有實現(xiàn)的方法。例如, InterfaceSample為接口, 抽象類AbstractClass是接口的實現(xiàn)類,SonAbstractClass類為抽象類AbstractClass的子類。InterfaceSampleTest是測試類。代碼如下:193210.4 必備知識 package com.task10;/* * InterfaceSample.java * 接口 */public interface InterfaceSample public void action1();/抽
18、象方法public void action2();package com.task10;/* * AbstractClass.java * 抽象類,作為接口的實現(xiàn)類 */public abstract class AbstractClass implements InterfaceSample Overridepublic void action1() /實現(xiàn)接口中的方法System.out.println(在抽象類中實現(xiàn)接口的action1()方法);abstract void action3();/新增的抽象方法,擴(kuò)展類的功能203210.4 必備知識 package com.task10
19、;/* * SonAbstractClass.java * 抽象類的子類 */public class SonAbstractClass extends AbstractClass Overridevoid action3() /實現(xiàn)抽象類中的抽象方法System.out.println(在子類中實現(xiàn)抽象類-父類的action3()方法);Overridepublic void action2() /實現(xiàn)接口中的方法,在抽象類中沒有得到實現(xiàn)System.out.println(在子類中實現(xiàn)接口的action2()方法);package com.task10;/* * InterfaceSamp
20、leTest.java * 測試類 */public class InterfaceSampleTest /* * param args */public static void main(String args) SonAbstractClass sonAbstractClass=new SonAbstractClass();sonAbstractClass.action1();/調(diào)用在抽象類中實現(xiàn)的接口的action1()方法sonAbstractClass.action2();/調(diào)用在子類中實現(xiàn)的接口的action2()方法sonAbstractClass.action3();/調(diào)用在子
21、類中實現(xiàn)的抽象類-父類的action3()方法/新增的抽象方法,擴(kuò)展類的功能213210.4 必備知識 抽象類AbstractClass實現(xiàn)了InterfaceSample接口,同時,實現(xiàn)了接口中的action1()方法,但沒有實現(xiàn)接口中的action2()方法,而是新增了抽象方法action3(),擴(kuò)展了類的功能。抽象類AbstractClass的子類SonAbstractClass,實現(xiàn)了抽象類中的抽象方法action3(),以及接口的抽象方法action2()。223210.4 必備知識 10.4.2 接口與多態(tài)的關(guān)系動態(tài)多態(tài)是在父類與子類之間的方法重寫。接口是為了在運(yùn)行時支持動態(tài)調(diào)用方
22、法的一種機(jī)制,它使方法的聲明和實現(xiàn)分割開來。接口作為類型可以聲明一個對象的引用變量,實現(xiàn)接口的類實例化后,其對象的引用可以保存在這個變量中,再通過引用變量訪問方法。至于調(diào)用哪個方法是動態(tài)的,根據(jù)實際創(chuàng)建的對象調(diào)用相應(yīng)的實現(xiàn)方法。通過接口找到方法,表現(xiàn)出多態(tài)性。233210.4 必備知識 10.4.3 面向接口編程的思想開發(fā)系統(tǒng)時,主體構(gòu)架使用接口,接口構(gòu)成系統(tǒng)的骨架,這樣就可以通過更換接口的實現(xiàn)類來更換系統(tǒng)的實現(xiàn)。這就是面向接口編程的思想。采用面向接口編程的思想編程,分為三個步驟。以下結(jié)合例子加以學(xué)習(xí)。有一攝影中心,既有傳統(tǒng)照相機(jī)(AnalogueCamera),也有數(shù)碼照相機(jī)(Digital
23、Camera),中心(PhotoCentre)和攝影師(Cameraman)在拍照時,使用不同的照相機(jī)照出的照片也就不同,最后經(jīng)攝影中心將照片印出來(printPhoto)。采用面向接口編程的思想編程。1.抽象出Java接口傳統(tǒng)照相機(jī)、數(shù)碼照相機(jī)都是用作拍照,但兩者對拍照takephoto()方法有不同的實現(xiàn)。因此,抽象出Java接口Camera,在其中定義方法takephoto()。同樣,無論是攝影師還是攝影中心派人拍照,都要進(jìn)行照片的景點(diǎn)抓取,但各自對aimAtPhoto()方法實現(xiàn)不同。因此,抽象出Java接口Photo,在其中定義方法aimAtPhoto()。243210.4 必備知識
24、 具體實現(xiàn):package com.task10;/* * Camera.java * 接口 */public interface Camera public void takephoto(String content);/拍照片package com.task10;/* * Photo.java * 接口 */public interface Photo public String aimAtPhoto();/抓取景點(diǎn)253210.4 必備知識 2.實現(xiàn)Java接口抽象出Java接口Camera,并在其中定義了takephoto()方法后,傳統(tǒng)照相機(jī)、數(shù)碼照相機(jī)對takephoto()方法有
25、各自不同的實現(xiàn)。因此,傳統(tǒng)照相機(jī)、數(shù)碼照相機(jī)都實現(xiàn)Camera接口,各自實現(xiàn)takephoto()方法。同樣,攝影師Cameraman實現(xiàn)了接口Photo。具體實現(xiàn):package com.task10;/* * AnalogueCamera.java * 實現(xiàn)類 */public class AnalogueCamera implements Camera public void takephoto(String content) /拍照 System.out.println(傳統(tǒng)照像:); System.out.println(content);package com.task10;/*
26、* DigitalCamera.java * 實現(xiàn)類 */263210.4 必備知識 public class DigitalCamera implements Camera public void takephoto(String content) /拍照 System.out.println(數(shù)碼照像:); System.out.println(content);package com.task10;/* * Cameraman.java * 實現(xiàn)類 */public class Cameraman implements Photo public String aimAtPhoto() /
27、抓取到景點(diǎn)return 本人是攝影師,抓取到景點(diǎn),拍照了;273210.4 必備知識 3.使用Java接口主體構(gòu)架使用接口, 讓接口構(gòu)成系統(tǒng)的骨架,通過更換實現(xiàn)接口的類就可以更換系統(tǒng)的實現(xiàn)。具體實現(xiàn):package com.task10;/* * PhotoCentre.java * 實現(xiàn)類 */public class PhotoCentre implements Photo private Camera camera; /照相機(jī) public void setCamera(Camera camera) this.camera = camera; public String aimAtPho
28、to() /抓取到景點(diǎn) return 這里是攝影中心,抓取到景點(diǎn),拍照了; public void printPhoto(Photo scene)/印照片 camera.takephoto(scene.aimAtPhoto(); System.out.println(照片印好了); 283210.4 必備知識 package com.task10;/* * CameraTest.java * 測試類 */public class CameraTest public static void main(String args) PhotoCentre photoCentre=new PhotoCentre(); / 創(chuàng)建攝影中心 photoCentre.setCamera(new AnalogueCamera(); /配備傳統(tǒng)照相機(jī) phot
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)風(fēng)險管理與防范制度
- 交通肇事逃逸處理制度
- 2026甘肅電投常樂發(fā)電有限責(zé)任公司招聘30人參考題庫附答案
- 2026福建省面向中國科學(xué)院大學(xué)選調(diào)生選拔工作考試備考題庫附答案
- 2026貴州遵義市湄潭縣消防救援大隊政府專職消防隊員招聘20人參考題庫附答案
- 2026重慶醫(yī)科大學(xué)附屬第一醫(yī)院工作人員招聘參考題庫附答案
- 2026青海省海西州德令哈市司法局招聘1人備考題庫附答案
- 中共玉環(huán)市委宣傳部關(guān)于下屬事業(yè)單位 市互聯(lián)網(wǎng)宣傳指導(dǎo)中心公開選聘1名工作人員的考試備考題庫附答案
- 會昌縣2025年縣直事業(yè)單位公開選調(diào)一般工作人員考試備考題庫附答案
- 德令哈市公安局2025年面向社會公開招聘警務(wù)輔助人員參考題庫附答案
- 春節(jié)大客車安全培訓(xùn)內(nèi)容課件
- (人教A版)必修一高一數(shù)學(xué)上冊同步分層練習(xí)1.3 并集與交集第1課時(原卷版)
- 完整銀行貸款合同5篇
- 供應(yīng)鏈年終總結(jié)報告
- 2025年高考數(shù)學(xué)真題分類匯編專題10 直線與圓及圓錐曲線(全國)(解析版)
- 全媒體矩陣宣傳推廣服務(wù)項目方案投標(biāo)文件(技術(shù)方案)
- 2025版地暖施工項目進(jìn)度管理與結(jié)算合同
- 軍人成長成才課件
- 脊柱外科工作匯報
- 滬教牛津版英語九年級上學(xué)期英語各單元語法專項
- 熱身運(yùn)動課堂課件
評論
0/150
提交評論