Java程序設(shè)計(jì)項(xiàng)目式教程 課件 4-3 使用接口實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)_第1頁(yè)
Java程序設(shè)計(jì)項(xiàng)目式教程 課件 4-3 使用接口實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)_第2頁(yè)
Java程序設(shè)計(jì)項(xiàng)目式教程 課件 4-3 使用接口實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)_第3頁(yè)
Java程序設(shè)計(jì)項(xiàng)目式教程 課件 4-3 使用接口實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)_第4頁(yè)
Java程序設(shè)計(jì)項(xiàng)目式教程 課件 4-3 使用接口實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

§4-3使用接口實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)Java面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)目標(biāo)任務(wù)分析

在學(xué)生信息管理系統(tǒng)中,除定義表示學(xué)生實(shí)體的類(實(shí)體類)之外,還需要定義各種完成系統(tǒng)功能的類(業(yè)務(wù)處理類),本任務(wù)的業(yè)務(wù)處理類中必須完成學(xué)生信息的增、刪、改、查等基本操作,但不同實(shí)體實(shí)現(xiàn)業(yè)務(wù)的方式又各不相同,為了保證這些基本功能的實(shí)現(xiàn),通常先定義一組約束或規(guī)范,約定好必須要實(shí)現(xiàn)的功能,Java中的接口便可以實(shí)現(xiàn)這一功能。教學(xué)內(nèi)容1抽實(shí)現(xiàn)接口定義21Java多態(tài)一、接口定義接口是由一些抽象方法和常量所組成的一個(gè)集合。它的定義與抽象類類似,只定義了類中方法的原型,而沒有直接定義方法的內(nèi)容。其定義格式為:

[public]interface接口名[extends接口1,接口2,......]{

類型標(biāo)識(shí)符常量名1=常數(shù);

類型標(biāo)識(shí)符常量名2=常數(shù);

......

類型標(biāo)識(shí)符常量名n=常數(shù);

返回值類型方法1(參數(shù)列表);

返回值類型方法2(參數(shù)列表);

......

返回值類型方法n(參數(shù)列表);

}一、接口定義接口中定義的常量默認(rèn)使用了“publicstaticfinal”進(jìn)行修飾,即為靜態(tài)常量;方法都默認(rèn)使用了“publicabstract”進(jìn)行修飾,即為抽象方法。接口也不能用來實(shí)例化對(duì)象,它不是一個(gè)類。例如:

interfaceCallback{

floatPI=3.14159;

voidcallback(floatparam);

}二、接口實(shí)現(xiàn)一個(gè)或多個(gè)類可以實(shí)現(xiàn)該接口。Java中使用關(guān)鍵字implements實(shí)現(xiàn)接口,接口實(shí)現(xiàn)一般格式如下:

[public]class類名[extends父類名稱][implements接口名列表]

{類體

}說明:1)如果一個(gè)類實(shí)現(xiàn)多個(gè)接口,這些接口名之間用逗號(hào)分隔。2)當(dāng)一個(gè)類實(shí)現(xiàn)某個(gè)接口時(shí),必須實(shí)現(xiàn)接口中的所有方法,且方法必須聲明為public;如果不能實(shí)現(xiàn),也必須寫出一個(gè)空方法。而且,實(shí)現(xiàn)方法的類型必須嚴(yán)格與接口定義中指定的類型相匹配。3)允許多個(gè)類實(shí)現(xiàn)同一接口。二、接口實(shí)現(xiàn)例如,實(shí)現(xiàn)Callback接口的類Area的定義。

classAreaimplementsCallback{

publicvoidcallback(floatr){

System.out.println("半徑為"+r+"圓的面積是:"+PI*r*r);

}

}注意:callback(

)必須用public修飾符聲明。二、接口實(shí)現(xiàn)【例4-9】根據(jù)用戶要求在控制臺(tái)打印不同的圖形。interfaceShape{//定義接口voiddraw();}classCircleimplementsShape{voiddraw(){System.out.println("drawCircle.");}}classSquareimplementsShape{voiddraw(){System.out.println("drawSquare.");}}classTriangleimplementsShape{voiddraw(){System.out.println("drawTriangle.");}}classTestShape{publicstaticvoidmain(String[]args){drawShape(newCircle());

drawShape(newSquare());

drawShape(newTriangle());

}staticvoiddrawShape(Shapes){//s可以是實(shí)現(xiàn)Shape接口的任何類的對(duì)象

s.draw();

}}三、Java多態(tài)性封裝是把客觀事物封裝成抽象的類,并且類可以把自己的數(shù)據(jù)和方法只讓可信的類或者對(duì)象操作,對(duì)不可信的進(jìn)行信息隱藏。類中成員的屬性有:public,protected,(default),private,這四個(gè)屬性的訪問權(quán)限依次降低。

封裝可以隱藏實(shí)現(xiàn)細(xì)節(jié),實(shí)現(xiàn)了代碼模塊化。繼承是指這樣一種能力,它可以使用現(xiàn)有類的所有功能,并在無(wú)需重新編寫原來類的情況下對(duì)這些功能進(jìn)行擴(kuò)展。

繼承實(shí)現(xiàn)了代碼重用,提高了代碼編寫效率。封裝、繼承、多態(tài)是Java面向?qū)ο缶幊痰娜筇卣?,也稱為三大基石。三、Java多態(tài)性多態(tài)是指不同對(duì)象在調(diào)用同一個(gè)方法時(shí),表現(xiàn)出的多種不同形態(tài)。利用多態(tài)可以使程序具有良好的可維護(hù)性和可擴(kuò)展性。Java中的多態(tài)有兩種。

1)編譯時(shí)多態(tài):方法的重載。

2)運(yùn)行時(shí)多態(tài):Java運(yùn)行時(shí)系統(tǒng)根據(jù)調(diào)用該方法的對(duì)象類型來決定選擇調(diào)用哪個(gè)方法。多態(tài)實(shí)現(xiàn)有三個(gè)必要條件。一要有繼承,二要有重寫,三是父類引用指向子類對(duì)象封裝、繼承、多態(tài)是Java面向?qū)ο缶幊痰娜筇卣?,也稱為三大基石。三、Java多態(tài)性【例4-10】多態(tài)性應(yīng)用示例,對(duì)各類水果味道的描述。publicabstractclassFruit{ //抽象類,父類——水果

Stringfname;

publicFruit(Stringfname){ super(); this.fname=fname;

}

publicabstractvoidshowTaste();//抽象方法,描述水果味道}publicclassOrangeextendsFruit{ //子類——橙子類

publicOrange(Stringfname){ super(fname);

}

publicvoidshowTaste(){ System.out.println("酸甜可口!");

}}publicclassAppleextendsFruit{ //子類——蘋果類

publicApple(Stringfname){ super(fname);

}

publicvoidshowTaste(){ System.out.println("非常甜!");

}}publicclassChild{ //孩子類

Stringname;

publicChild(Stringname){ super(); =name;

}

publicvoideat(Fruitfruit){ //父類對(duì)象作為形參

//參數(shù)是父類型“水果”類型,該父類及其子類的對(duì)象都可以作為實(shí)參傳入 System.out.print(+"今天吃了一個(gè)"+fruit.fname+","); fruit.showTaste();

}}三、Java多態(tài)性【例4-10】多態(tài)性應(yīng)用示例,對(duì)各類水果味道的描述。publicclassTestFruit{ //主類(測(cè)試類)

publicstaticvoidmain(String[]args){ Childchild1=newChild("小明"); Childchild2=newChild("小紅"); child1.eat(newApple("蘋果")); //子類對(duì)象作為實(shí)參 child2.eat(newOrange("橙子"));

//子類對(duì)象作為實(shí)參

//實(shí)現(xiàn)動(dòng)態(tài)綁定,在執(zhí)行期間判斷所引用對(duì)象的實(shí)際類型,根據(jù)其實(shí)際的類型調(diào)用其相應(yīng)的方法

}}程序說明:1)程序中使用了一個(gè)實(shí)現(xiàn)多態(tài)的關(guān)鍵手段:“將子類的引用賦給父類對(duì)象(向上轉(zhuǎn)型)”也稱為“父類引用指向子類對(duì)象”。相當(dāng)于:Fruitapple=newApple();聲明的是父類類型,創(chuàng)建的是子類對(duì)象。2)該程序具有較強(qiáng)的可擴(kuò)展性。如:若在程序中再增加一種水果——桃子,現(xiàn)在已有代碼不需要做任何改動(dòng),只需要添加一個(gè)“桃子”子類,就可以完成。這就是多態(tài)的最大優(yōu)勢(shì)。任務(wù)實(shí)施學(xué)生信息管理系統(tǒng)中,為了實(shí)現(xiàn)學(xué)生信息的“增、刪、改、查”這些基本功能,首先定義了一個(gè)接口StudentDao,在其中規(guī)定了實(shí)現(xiàn)接口的類必須實(shí)現(xiàn)的功能。publicinterfaceStudentDao{

publicUserlogin(Stringuname,String

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論