




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)現(xiàn)抽象圖形接口與包第一頁,共二十四頁,編輯于2023年,星期二內(nèi)容介紹9.1任務(wù)預(yù)覽9.2抽象方法與抽象類9.3接口類型9.4接口多重繼承與實(shí)現(xiàn)9.5包9.6本章小結(jié)9.7實(shí)訓(xùn)9:實(shí)現(xiàn)圖形接口第二頁,共二十四頁,編輯于2023年,星期二9.1任務(wù)預(yù)覽本章實(shí)訓(xùn)程序運(yùn)行結(jié)果:
第三頁,共二十四頁,編輯于2023年,星期二
9.2抽象方法與抽象類
9.2.1抽象方法與抽象類在類中聲明抽象方法的語法形式:可選public等abstract返回類型方法名(可選參數(shù)表);聲明了抽象方法的類,由于有不能執(zhí)行的方法,因此無法實(shí)例化,即無法構(gòu)建對象,是抽象類。抽象類也用關(guān)鍵字abstract聲明:可選publicabstractclass類名{類成員}注意:含有抽象方法的類一定是抽象類,但抽象類不一定含有抽象方法。第四頁,共二十四頁,編輯于2023年,星期二【例9-1】定義抽象圖形類,內(nèi)含抽象的面積和周長方法。定義繼承該類的圓類,重寫并實(shí)現(xiàn)面積和周長方法。再定義繼承抽象圖形類的正方形類。最后定義一個(gè)運(yùn)行主類,構(gòu)建圓和正方形對象,并計(jì)算它們的面積和周長。abstractclassShape{//抽象圖形類
publicabstractdoublecalcArea(); publicabstractdoublecalcGirth();}classCircleextendsShape{//繼承抽象圖形類的圓類
privatedoubleradius; publicCircle(doubleradius){this.radius=radius;} publicdoublecalcArea(){ returnMath.PI*Math.pow(radius,2); } publicdoublecalcGirth(){return2*Math.PI*radius;}}第五頁,共二十四頁,編輯于2023年,星期二續(xù)例9-1classSquareextendsShape{//繼承抽象圖形類的正方形類
privatedoubleborder;//邊
publicSquare(doubleborder){this.border=border;} publicdoublecalcArea(){ returnMath.pow(border,2); } publicdoublecalcGirth(){returnborder*4;}}publicclassExample1{… CircleaCircle=newCircle(1); System.out.println("構(gòu)造了一個(gè)半徑為1的圓"); System.out.println("圓面積"+aCircle.calcArea()); … SquareaSquare=newSquare(1); System.out.println("構(gòu)造了一個(gè)邊長為1的正方形");…第六頁,共二十四頁,編輯于2023年,星期二9.2.2對比抽象類(方法)與最終類(方法)抽象方法只有被派生類重寫,才能實(shí)現(xiàn)具體功能。抽象類處于類繼承層次結(jié)構(gòu)中的頂層。最終類是不能被繼承的類,處于類繼承層次結(jié)構(gòu)中最底層。最終類與抽象類是水火不相容的。最終方法是不能被派生類重寫的方法。最終方法與抽象方法也是水火不相容,最終方法可以存于最終類,也可存于非最終類。關(guān)于抽象方法、一般方法與最終方法的作用總結(jié)如下:abstract方法只引入方法的名稱。一般方法是方法的一個(gè)實(shí)現(xiàn)。final方法是方法的最后一個(gè)實(shí)現(xiàn)。第七頁,共二十四頁,編輯于2023年,星期二
9.3接口類型
9.3.1接口定義與實(shí)現(xiàn)可選publicinterface接口名{常量字段和抽象方法成員}接口體中主要有最終字段(即常量字段)和抽象方法兩種成員,都默認(rèn)為public,其中常量字段允許省略public和final,抽象方法允許省略public和abstract。接口的作用類似抽象類,不過方法只提供抽象的。接口的抽象方法由類來實(shí)現(xiàn)。實(shí)現(xiàn)接口語法形式如下:可選public等class類名implements接口表{含實(shí)現(xiàn)接口的類成員}實(shí)現(xiàn)接口就是定義一個(gè)類,為接口的所有抽象方法提供方法體。第八頁,共二十四頁,編輯于2023年,星期二【例9-2】定義圖形接口,內(nèi)含抽象的面積和周長方法等成員。定義實(shí)現(xiàn)該接口的圓類,實(shí)現(xiàn)面積和周長方法。再定義實(shí)現(xiàn)圖形接口的正方形類。最后定義運(yùn)行主類,構(gòu)建圓和正方形對象,并計(jì)算它們的面積和周長。interfaceShapeable{//能成形的圖形接口
publicfinaldoubleMIN_AREA=0;//可以省略publicfinal publicfinaldoubleMIN_GIRTH=0;//可以省略publicfinal publicabstractdoublecalcArea();//可以省略publicabstract publicabstractdoublecalcGirth();//可以省略publicabstract}classCircle2implementsShapeable{//實(shí)現(xiàn)圖形接口的圓類
privatedoubleradius; publicCircle2(doubleradius){this.radius=radius;} publicdoublecalcArea(){//實(shí)現(xiàn)計(jì)算面積方法
returnMath.PI*Math.pow(radius,2); } publicdoublecalcGirth(){return2*Math.PI*radius;}}第九頁,共二十四頁,編輯于2023年,星期二續(xù)例9-2classSquare2implementsShapeable{//實(shí)現(xiàn)接口的正方形類
privatedoubleborder;//邊
publicSquare2(doubleborder){this.border=border;} publicdoublecalcArea(){returnMath.pow(border,2);} publicdoublecalcGirth(){returnborder*4;}}… Circle2aCircle=newCircle2(1); System.out.println("構(gòu)造了一個(gè)半徑為1的圓"); System.out.println("圓面積"+aCircle.calcArea()); System.out.println("圓周長"+aCircle.calcGirth()); … Square2aSquare=newSquare2(1); System.out.println("構(gòu)造了一個(gè)邊長為1的正方形"); …第十頁,共二十四頁,編輯于2023年,星期二9.3.2通過接口來引用類——接口多態(tài)接口類型可聲明變量,通過賦值來引用一個(gè)實(shí)現(xiàn)該接口的類對象。如可修改例9-2中代碼:
ShapeableaShape; aShape=newCircle2(1);//接口變量引用實(shí)對象
System.out.println("構(gòu)造了一個(gè)半徑為1的圓");… aShape=newSquare2(1);//引用另一對象
System.out.println("構(gòu)造了一個(gè)邊長為1的正方形");…這種接口回調(diào)現(xiàn)象與類的多態(tài)性相似,是接口的多態(tài)性。因?yàn)橥瑯有问降恼{(diào)用,aShape指向的對象不同(圓或正方形),調(diào)用的方法也不同,得到的結(jié)果當(dāng)然也不同。第十一頁,共二十四頁,編輯于2023年,星期二
9.4接口多重繼承與實(shí)現(xiàn)
9.4.1接口多重繼承接口類型有一個(gè)大家族,接口之間也有繼承與派生關(guān)系。接口允許多重繼承,語法:可選publicinterface接口名extends父接口表
{常量字段和抽象方法成員}例如:interfaceIA{...}interfaceIB{...}interfaceICextendsIA,IB{...}第十二頁,共二十四頁,編輯于2023年,星期二9.4.2類實(shí)現(xiàn)多個(gè)接口允許一個(gè)類同時(shí)實(shí)現(xiàn)多個(gè)接口,如:classDimplementsIA,IB{...}類單一繼承的同時(shí),可同時(shí)實(shí)現(xiàn)多個(gè)接口。如:classE{...}classFextendsEimplementsIA,IB{...}繼承一個(gè)父類并實(shí)現(xiàn)多個(gè)接口的類定義一般形式如下:可選public等class類名extends父類implements接口表{類成員}實(shí)現(xiàn)多個(gè)接口的類,必須重寫各個(gè)接口的方法。第十三頁,共二十四頁,編輯于2023年,星期二
9.5包
9.5.1Java系統(tǒng)API包包就是類、接口等類型的命名存儲空間,因此,包又稱“類庫”。API包功能和部分類型java.langJava基礎(chǔ)類庫,提供Java編程最基本的類和接口,例如System、String、Math和Thread類,Cloneable和Runnable接口java.util實(shí)用工具包,提供Arrays、Date、Random、Scanner等類,以及Collection<E>、Map<K,V>等接口java.io關(guān)于數(shù)據(jù)流與輸入輸出的包,提供BufferedReader、BufferedWriter、FileReader、FileWriter等類,以及DataInput、DataOutput等接口java.awt圖形用戶界面包,常用類有Frame、Button、Label、TextField、Color和Graphics等java.awt.event圖形用戶界面事件包,類有ActionEvent和ItemEvent等、接口有ActionListener和ItemListener等java.applet創(chuàng)建小程序的包,有Applet類和AudioClip接口等java.sql訪問數(shù)據(jù)庫的包,類有DriverManager等,接口有Connection、Statement和ResultSet等網(wǎng)絡(luò)包,有Socke和ServerSocket等類javax.swing提供“輕量級”圖形用戶界面組件,類有JFrame、JButton、JLabel等第十四頁,共二十四頁,編輯于2023年,星期二9.5.2定義包定義包也叫聲明包,語法:package包名;包語句必須放在源代碼首行,一個(gè)源程序只能有一個(gè)包語句。包名一般采用小寫字母,允許分級(分層)命名,以圓點(diǎn)“.”分隔。自定義的包對應(yīng)文件夾,缺省包對應(yīng)當(dāng)前文件夾。例如,定義包語句:packagecom.fancy;這時(shí),要?jiǎng)?chuàng)建對應(yīng)的文件夾com\fancy。在Eclipse等集成開發(fā)環(huán)境中,創(chuàng)建包時(shí)可自動創(chuàng)建對應(yīng)的文件夾。注意:分級包的命名往往與網(wǎng)站域名相反,例如:網(wǎng)站域名為,則包名就是com.fancy。第十五頁,共二十四頁,編輯于2023年,星期二【例9-3】定義包c(diǎn)om.fancy,在包內(nèi)放置抽象圖形類Shape。packagecom.fancy;//定義包publicabstractclassShape{//抽象圖形類
publicabstractdoublecalcArea();//抽象的計(jì)算面積方法
publicabstractdoublecalcGirth();//抽象的計(jì)算周長方法}在Eclipse環(huán)境下編寫創(chuàng)建包的應(yīng)用程序步驟:(1)創(chuàng)建Java項(xiàng)目(2)執(zhí)行File|New|Package命令(3)執(zhí)行File|New|Class命令如果執(zhí)行File|New|Interface菜單命令,則出現(xiàn)NewJavaInterface對話框,以建立相應(yīng)的接口。(4)最后輸入代碼第十六頁,共二十四頁,編輯于2023年,星期二9.5.3引入包引入包語句語法:import包名.*;//其中*號表示所有內(nèi)容import包名.類名;import包名.接口名;一個(gè)源程序可使用多個(gè)import語句。import語句要放在package語句之后,類(或接口)定義之前。第十七頁,共二十四頁,編輯于2023年,星期二【例9-4】定義包c(diǎn)om.fancy.aaa,并引入例9-3定義的包c(diǎn)om.fancy。在本包中定義繼承com.fancy.Shape類的圓類,并定義運(yùn)行主類,構(gòu)建圓對象,計(jì)算圓面積和周長。packagecom.fancy.aaa;//定義包importcom.fancy.*;//引入包c(diǎn)lassCircleextendsShape{//繼承com.fancy.Shape類的圓類
privatedoubleradius; publicCircle(doubleradius){this.radius=radius;} publicdoublecalcArea(){//重寫并實(shí)現(xiàn)計(jì)算面積方法
returnMath.PI*Math.pow(radius,2); } publicdoublecalcGirth(){return2*Math.PI*radius;}}第十八頁,共二十四頁,編輯于2023年,星期二續(xù)例9-4publicclassExample4{//主類
publicstaticvoidmain(String[]args){ CircleaCircle=newCircle(1); System.out.println("構(gòu)造了一個(gè)半徑為1的圓"); System.out.printf("圓面積:%.2f",aCircle.calcArea()); System.out.printf("\n圓周長:%.2f",aCircle.calcGirth()); }}第十九頁,共二十四頁,編輯于2023年,星期二【例9-5】定義包c(diǎn)om.fancy.bbb,在該包中定義繼承com.fancy.Shape類的正方形類(需引入例9-3定義的包c(diǎn)om.fancy)。定義主類,在主類的main方法中構(gòu)建正方形對象,計(jì)算其面積和周長。com\fancy\bbb\Square.java文件:packagecom.fancy.bbb;//定義包importcom.fancy.*;//引入包publicclassSquareextendsShape{ privatedoubleborder;//邊
publicSquare(doubleborder){this.border=border;} publicdoublecalcArea(){//重寫并實(shí)現(xiàn)計(jì)算面積方法
returnMath.pow(border,2); } publicdoublecalcGirth(){returnborder*4;}}第二十頁,共二十四頁,編輯于2023年,星期二續(xù)例9-5,
com\fancy\bbb
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 天津耀華嘉誠國際中學(xué)2025屆高二化學(xué)第二學(xué)期期末預(yù)測試題含解析
- 湖北省仙桃、天門、潛江三市2025屆高一下化學(xué)期末監(jiān)測試題含解析
- 北斗監(jiān)控動態(tài)管理辦法
- 農(nóng)村產(chǎn)權(quán)交易管理辦法
- 保安制服收繳管理辦法
- 北京招聘醫(yī)療管理辦法
- 制程物料標(biāo)識管理辦法
- 新質(zhì)生產(chǎn)力背景下元宇宙賦能圖書館數(shù)字化轉(zhuǎn)型的策略與挑戰(zhàn)
- 江西公費(fèi)醫(yī)療管理辦法
- 制程檢驗(yàn)管理辦法培訓(xùn)
- 廣州市藝術(shù)中學(xué)招聘教師考試真題2024
- 工業(yè)自動化設(shè)備保修及維修管理措施
- 期末作文預(yù)測外研版七年級英語下冊
- 2025-2030中國兒童魚油行業(yè)銷售動態(tài)及競爭策略分析報(bào)告
- 統(tǒng)編版五年級升六年級語文暑期銜接《課外閱讀》專項(xiàng)測試卷及答案
- 小小理財(cái)家課件
- DB43-T 2622-2023 醫(yī)療導(dǎo)管標(biāo)識管理規(guī)范
- 譯林版一年級下冊全冊英語知識點(diǎn)梳理
- 案場物業(yè)制度管理制度
- 護(hù)理事業(yè)十五五發(fā)展規(guī)劃(2026-2030)
- 黃大年式教師團(tuán)隊(duì)申報(bào)
評論
0/150
提交評論