java課程版10第章抽象類和接口_第1頁(yè)
java課程版10第章抽象類和接口_第2頁(yè)
java課程版10第章抽象類和接口_第3頁(yè)
java課程版10第章抽象類和接口_第4頁(yè)
java課程版10第章抽象類和接口_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第9章抽象類和接口第II篇的必備基礎(chǔ)

第6章對(duì)象和類

第7章字符串

第8章繼承和多態(tài)

第5章數(shù)組

第9章抽象類和接口

第10章面向?qū)ο蠼?

第11章圖形界面程序編程

第12章事件驅(qū)動(dòng)程序-

第15章異常和斷言

第16章簡(jiǎn)單輸入輸出

第8章后可涉及圖形界面

學(xué)習(xí)目標(biāo)設(shè)計(jì)和使用抽象類(§9.2).使用Calendar

和GregorianCalendar

類處理日歷(§9.3).聲明接口來(lái)模擬弱繼承關(guān)系(§9.4).了解接口和抽象類的異同(§9.4).使用包裝類(Byte,Short,Integer,Long,Float,Double,Character,andBoolean)將基本數(shù)據(jù)類型包裝為對(duì)象(§9.5).abstract

修飾符abstract

類和常規(guī)類一樣具有數(shù)據(jù)和方法,但是不能用new操作符創(chuàng)建它的實(shí)例.需要被繼承,實(shí)現(xiàn)由子類提供abstract

方法只有方法頭標(biāo)志而沒(méi)有實(shí)現(xiàn)Abstract類GeometricObjectCircleCylinderRectangle

Circle

-radius:double

+getRadius():double

+setRadius(radius:double):void

Cylinder

-length:double

+getLength():double

+setLength(length:double):void

+findVolume():double

GeometricObject

-color:String

-filled:boolean

+getColor():String

+setColor(Stringcolor):void

+isFilled():boolean

+setFilled(booleanfilled):void

+findArea():double

+findPerimeter():double

Object

Rectangle

-width:double

-length:double

+getWidth():double

+setWidth(width:double):void

+getLength():double

+setLength(length:double):void

UML圖形符號(hào):

抽象的類名和方法名用斜體注非抽象類不能包含抽象方法,如果一個(gè)抽象父類的子類不能實(shí)現(xiàn)所有的抽象方法,它必須聲明為抽象的。換句話說(shuō),在一個(gè)抽象類擴(kuò)展出來(lái)的非抽象類中,所有的抽象方法必須實(shí)現(xiàn)。注抽象類不能用new運(yùn)算符實(shí)例化,但仍然可以定義它的構(gòu)造方法這種構(gòu)造方法將在它的子類中被調(diào)用。包含抽象方法的類必須是抽象的,但是允許聲明沒(méi)有抽象方法的抽象類。這種情況下不能用new操作符創(chuàng)建類的實(shí)例,這種類用于定義新的子類。注子類可以聲明為抽象的,即使它的父類是具體的。例如object類是具體的,但是它的子類可以是抽象的。子類可以覆蓋它的父類的方法,將其聲明為抽象的。例如,父類的方法在子類中無(wú)效時(shí)就可以使用。注不能用new運(yùn)算符創(chuàng)建抽象類的實(shí)例,但是抽象類可以作為數(shù)據(jù)類型。如,創(chuàng)建一個(gè)元素是GeometricObject

類型的數(shù)組:

GeometricObject[]geo=newGeometricObject[10];GeometricObjectgeo=newGeometricObject();錯(cuò)對(duì)Example9.1

使用GeometricObject類

Objective:創(chuàng)建2個(gè)幾何對(duì)象,一個(gè)圓和一個(gè)矩形。equalArea方法檢查2個(gè)對(duì)象是否有相同的面積,displayGeometricObject方法顯示對(duì)象.TestGeometricObjectRun日歷類Calendar和

公歷類GregorianCalendarjava.util.Date實(shí)例表示以毫秒為單位的時(shí)刻.java.util.Calendar是一個(gè)抽象的父類,可以實(shí)現(xiàn)特定的日歷系統(tǒng)。公歷類java.util.GregorianCalendar.Calendar類中的get方法Calendar類中的get方法用來(lái)提取給定時(shí)間域的值,時(shí)間域定義為常量。如YEAR,MONTH,DATE,HOUR(12),HOUR_OF_DAY(24),MINUTE,SECOND,DAY_OF_WEEK,DAY_OF_MONTH,DAY_OF_YEAR,WEEK_OF_MONTH,和WEEK_OF_YEAR例如:Java.util.Calendarcalendar=newjava.util.GregorianCalendar();System.out.println(calender.get(Calender.DAY_OF_MONTH));9.4接口接口interface

是一種與類相似的結(jié)構(gòu),只包含常量和抽象方法。

語(yǔ)法格式:publicinterface接口名{

常量聲明;

方法頭標(biāo)志;}接口示例//定義在java.langpackage中的接口packagejava.lang;publicinterfaceComparable{publicintcompareTo(Objecto);}9.4.2接口和抽象類在接口中,數(shù)據(jù)必須是常量,而抽象類可以有非常量的數(shù)據(jù)域。接口中的每個(gè)方法只有一個(gè)頭標(biāo)志,沒(méi)有實(shí)現(xiàn)部分,抽象類可以有具體的方法。9.4.2接口和抽象類在接口中,所有的數(shù)據(jù)域都是publicfinalstatic的,所有的方法都是publicabstract的,由于這個(gè)原因,這些修飾符可以忽略。接口中的常量能用下面的方式訪問(wèn)接口名.常量名(例如,T1.K).接口和抽象類Java對(duì)類的擴(kuò)展只允許單重繼承,但對(duì)接口允許多重繼承。與類相似,接口也可以定義一個(gè)類型。一個(gè)接口類型的變量可以引用任何實(shí)現(xiàn)該接口的類的實(shí)例。

創(chuàng)建自定義接口publicinterfaceEdible{

/**是否可以食用*/

publicStringhowToEat();

}

classAnimal{

}

classFruitimplementsEdible{

publicStringhowToEat(){

return"Eatitfresh";

}

}

classAppleextendsFruit{

publicStringhowToEat(){

return"Makeapplecider";

}

}

classOrangeextendsFruit{

publicStringhowToEat(){

return"Makeorangejuice";

}

}classChickenextendsAnimal

implementsEdible{

publicStringhowToEat(){

return"Fryit";

}

}

classTigerextendsAnimal{

}創(chuàng)建自定義接口publicclassTestEdible{

publicstaticvoidmain(String[]args){

Object[]objects={newTiger(),newChicken(),newApple()};

for(inti=0;i<objects.length;i++)

showObject(objects[i]);

}

publicstaticvoidshowObject(Objectobject){

if(objectinstanceofEdible)

System.out.println(((Edible)object).howToEat());

}

}創(chuàng)建自定義接口packagemylib.myclass;publicinterfaceMyInterface{publicstaticdoubleG=88;publicabstractvoidshow();}packagemylib.myclass;publicclassMyInterfaceUseimplementsMyInterface{ Stringstr;publicMyInterfaceUse(Strings){ str=s;}publicvoidshow(){ System.out.println(str+"G="+G);}} importmylib.myclass.MyInterface;importmylib.myclass.MyInterfaceUse;publicclassMyInterfaceTest{publicstaticvoidmain(Stringargs[]){MyInterfaceUseobj=newMyInterfaceUse("類A:");obj.show();System.out.println("obj.G="+obj.G);}} 接口應(yīng)用為了使程序?qū)︽I盤(pán)上的鍵的敲擊做出響應(yīng),定義了KeyListener接口。在java.awt.event中,包含了3個(gè)keyEvent事件的抽象方法

publicinterfacekeyListener{PublicvoidkeyTyped(keyEvente);PublicvoidkeyPressed(keyEvente);PublicvoidkeyReleased(keyEvente);}可以通過(guò)調(diào)用方法e.getKeyChar()返回字符。將基本數(shù)據(jù)類型處理為對(duì)象BooleanCharacterShortByteIntegerLongFloatDouble(1)包裝類沒(méi)有無(wú)參構(gòu)造方法。(2)所有包裝類的實(shí)例都是永久的,一旦對(duì)象創(chuàng)建后他們內(nèi)部的值就不能改變。

數(shù)值包裝類每一個(gè)數(shù)值包裝類都是從抽象類Number擴(kuò)展而來(lái)的,類Number包含了doubleValue,floatValue,intValue,longValue,shortValue,andbyteValue.這些類將對(duì)象轉(zhuǎn)換為基本類型的值。doubleValue,floatValue,intValue,longValue是抽象的。byteValueandshortValue不是抽象的。Integer

和Double

類Integer

和Double

類構(gòu)造方法類常量MAX_VALUE,MIN_VALUE轉(zhuǎn)換方法構(gòu)造方法publicInteger(intvalue)publicInteger(Strings)publicDouble(doublevalue)publicDouble(Strings)類常量每個(gè)數(shù)值包裝類都有常量MAX_VALUE和MIN_VALUE.

整數(shù)最大值(2,147,483,647)

正浮點(diǎn)數(shù)的最小值(1.4E-45)雙精度浮點(diǎn)數(shù)的最大值(1.79769313486231570e+308d).轉(zhuǎn)換方法類Number包含了doubleValue,floatValue,intValue,longValue,shortValue,a

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論