Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章--面向?qū)ο笤O(shè)計(jì)思想_第1頁
Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章--面向?qū)ο笤O(shè)計(jì)思想_第2頁
Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章--面向?qū)ο笤O(shè)計(jì)思想_第3頁
Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章--面向?qū)ο笤O(shè)計(jì)思想_第4頁
Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章--面向?qū)ο笤O(shè)計(jì)思想_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想 踏聘層他雹梯駁彬恥藩簽撒診脯頹吹采洞主悄峽擂釬壤澄勁可榆凜級(jí)謎觀Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想2驅(qū)動(dòng)任務(wù)一 創(chuàng)建一個(gè)抽象類Animal,它包含一個(gè)abstract的sound()方法;派生一個(gè)子類Dog,實(shí)現(xiàn)父類抽象方法sound();創(chuàng)建子類Dog對(duì)象,然后調(diào)用它的sound()方法。暈芹詫轅表幾豎緊貴備暴眼埔尉嚷臃躊桐曼汗譴腫弟治既鬃琵窮豎燦藏裴Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)

2、計(jì)思想3目標(biāo)及知識(shí)點(diǎn)定義和使用抽象類2final關(guān)鍵字的使用3抽象類的概念11鴛厄阜攔乳曙錘明蘋俺競(jìng)太個(gè)裂藻俘駛師漏駭租拌兼糖爐株搶嫁兢山霄倔Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想4抽象類 如果一個(gè)類中沒有包含足夠的信息來描繪一個(gè)具體的對(duì)象,這樣的類就是抽象類 定義一個(gè)抽象類的格式如下 abstract class AbstractClassNamepublic abstract class Shapepublic abstract double area();/抽象方法public abstract double

3、volume();/抽象方法 當(dāng)一個(gè)類被定義成abstract類時(shí),表示一個(gè)抽象的概念,它不能用new關(guān)鍵字實(shí)例化對(duì)象,例如上面定義的Shape類就是一個(gè)抽象類,只有被繼承并在子類中重寫其抽象方法,它才有意義。 柒訛巧廖謗杠葫形袱辯吻靠幀躺嚨憨楷汾乞肖濤屋掂咳拱寵屹窗火邑汀堡Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想5【例3-1】 定義一個(gè)代表形狀的抽象類,并派生出圓柱體類和長(zhǎng)方體類,計(jì)算底面半徑為2高為3的圓柱體體積和長(zhǎng)、寬、高分別為3、2、4的長(zhǎng)方體體積。 /定義一個(gè)形狀抽象類abstract class Shape

4、double radius,length,width,height;abstract double vol();/求體積的抽象方法Shape(double r,double h)/對(duì)半徑和高進(jìn)行初始化的構(gòu)造方法radius = r;height = h;Shape(double l,double w,double h)/對(duì)長(zhǎng)寬高進(jìn)行初始化的構(gòu)造方法length = l;width = w;height = h;/*圓柱體類*/class Circle extends ShapeCircle(double r,double h)super(r,h);double vol()/重寫父類抽象方法re

5、turn(3.1416*radius*radius*height); /*長(zhǎng)方體類*/class Rectangle extends ShapeRectangle(double l,double w,double h)super(l,w,h);double vol()/重寫父類抽象方法return (length*width*height);/*主類*/public class AbstractClassDemo public static void main(String args) Circle c = new Circle(2,3); Rectangle r = new Rectangl

6、e(3,2,4); System.out.println(圓柱體體積 = + c.vol(); System.out.println(長(zhǎng)方體體積 = + r.vol();結(jié)果:圓柱體體積37.6992長(zhǎng)方體體積24.0【思考】abstract修飾的類一定有abstract修飾的方法嗎?詩寒尾粵浮焙社芳然負(fù)倚龜埃煎狀尖伶祝欄圣圭硼豈腦首茲虛棟椅墊頁峻Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο筌浖_發(fā)6最終類-final類 有一種類是不能派生出子類的,我們叫這種類為最終類。即我們用final來修飾的類。pub

7、lic final class Test1 肆仰偉衣券爆峙府拈睬跪余祈兒戴鼎澇兜壁撾疼修庭肺糊躬殆物爐禁傍光Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο筌浖_發(fā)7最終類-final類 如果一個(gè)類不允許其子類覆蓋某個(gè)方法,則可以把這個(gè)方法聲明為final方法 public final void f2() System.out.println(f2);作倘哈呆漬疼狽找冗虱帥仗峽誤豁瑪楷書奸購依從弓系鬼攪韓鎊憊慎父炔Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章

8、 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο筌浖_發(fā)8【例3-2】 使用final方法的例子class Test1 public void f1() System.out.println(f1);/ 無法被子類覆蓋的方法public final void f2() System.out.println(f2);public class Test2 extends Test1public void f1() System.out.println(Test1父類方法f1被覆蓋!);public static void main(String args) Test2 t = new Test2();t.f1(

9、);t.f2(); / 調(diào)用從父類繼承過來的final方法結(jié)果:Test1父類方法f1被覆蓋!f2帶鍋漂佛榔郝制罐耪商盧幕寸挺道臂眺瀾擇騷刃振艷哲秉窟券聽歷蓄拉臺(tái)Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想9任務(wù)實(shí)現(xiàn)123分析類及關(guān)系 定義抽象類Animal Dog類利用構(gòu)造方法為type屬性賦值 45Dog類實(shí)現(xiàn)Animal的sound() main方法進(jìn)行測(cè)試 據(jù)喪昨吾災(zāi)邀憤撂溪卑幟爸干愈表飾橡拇磅詩糕危肩鄉(xiāng)穆本從迭搔言辦瑟Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3

10、章 面向?qū)ο笤O(shè)計(jì)思想10驅(qū)動(dòng)任務(wù)二 有一個(gè)接口AddImp規(guī)定了有求和的方法sum();另外一個(gè)SubImp接口規(guī)定了有減法運(yùn)算的方法subtract();再聲明一個(gè)接口Calculatable繼承于以上兩個(gè)接口。創(chuàng)建Calculator類實(shí)現(xiàn)接口Calculatable,并生成對(duì)象測(cè)試該對(duì)象的加減功能。月讀抖劉瘤展升核莎玲狹竟逃軀搏橙廁代撬墻袁頁求捷掀則鈞賈遵熔晌牙Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想11目標(biāo)及知識(shí)點(diǎn)接口的實(shí)現(xiàn) 2接口的繼承 3多接口4接口的定義11醒更揖也騙蕪鹵署輻掇付暴皆粥腰噬揮卡拭銜配擠份躊

11、龜零汲簇盧煽境矩Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想12接口的定義在Java語言中,用關(guān)鍵字interface來定義接口。接口與類有相似的結(jié)構(gòu),其定義格式如下:修飾符 interface 接口名 extends父接口名/接口體 美盔胸奉多迪皂逾憐隸霹穿離仍退悼懼務(wù)喊稗融戚槽蔬鍋映謂庇菇蘑棕?zé)隞ava面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想13接口的定義例3-3Interface ObjectArea double PI =3.14; double

12、area(double r); 注意:接口和普通類不一樣的是它的方法默認(rèn)是抽象和公共的,屬性默認(rèn)是常量,靜態(tài)的和公共的澎擋堡粱墮柳刻半殆檢氣痞碩塞升庶釀澈夢(mèng)炔秘炳椰甸諱預(yù)薊第恭捻牢砂Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想14接口的實(shí)現(xiàn) 若一個(gè)類想統(tǒng)一在某個(gè)接口的規(guī)范下,想具有這個(gè)接口的”身份”,就需要實(shí)現(xiàn)這個(gè)接口。格式如下:Class 類名 implements 接口名賜澇劇卉江箭又氛綢索恥史濤鄙朱巍煮優(yōu)藤懇梁貪織瓦飲駝秀懲習(xí)陽舔室Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系

13、統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想接口的實(shí)現(xiàn)15例3-4class Circle implements ObjectAreapublic double area(double r)/重寫return PI*r*r;注意:若實(shí)現(xiàn)接口的類不是抽象類,則該類必須實(shí)現(xiàn)指定接口的所有抽象方法。方法頭部應(yīng)該與接口中的定義完全一致,即有完全相同的方法名、參數(shù)表和返回值。揪啊遂嚴(yán)擄廟孕褐蚊脾駁父星竊窩現(xiàn)炔羞典爪捶齒腹平怨德駕廬撮富訃貼Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想16接口繼承 接口也可以通過關(guān)鍵字extends繼承其他接口。子接

14、口將繼承父接口中所有的常量和抽象方法。Interface 接口名 extends 接口名 絕告速瀝肯語湊庇壹裳渴蝴瓦坡擬繹寞換差燃些豬烏壩瓦厲紗器史埃波賠Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想接口繼承17例3-5:interface AString a = 接口A中常量;void showA();interface B extends AString b = 接口B中常量;void showB();interface C extends BString c = 接口C中常量;void showC();class In

15、terfaceABC implements Cpublic void showA()/重寫A接口中的方法System.out.println(a);public void showB()/重寫B(tài)接口中的方法System.out.println(b);public void showC()/重寫C接口中的方法System.out.println(c);搔鍵葷盲肆私檬斧散瑞圾肪鍬軟兇瑰坪封滬糊放辜母練瀕郡籮冷隱訣顛釜Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想實(shí)現(xiàn)多接口18一個(gè)類可以同時(shí)實(shí)現(xiàn)多個(gè)接口,接口名之間用逗號(hào)間隔。例3-6:interface A void meth1();interface B void meth2();class MyClass implements A,B public void meth1() System.out.println(Implement meth1().); public void meth2() System.out.println(Implement meth2().); 貸痛盒胸污屬縮欣閱哮反后姨呀死蜒董吩畝鐘察火耙秉筏伴蛹怎蓑眷恃勻Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)計(jì)思想Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)第3章 面向?qū)ο笤O(shè)

溫馨提示

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