Java面向对象程序设计与系统开发第3章面向对象设计思想

上传人:M****1 文档编号:585053515 上传时间:2024-09-01 格式:PPT 页数:20 大小:1.30MB
返回 下载 相关 举报
Java面向对象程序设计与系统开发第3章面向对象设计思想_第1页
第1页 / 共20页
Java面向对象程序设计与系统开发第3章面向对象设计思想_第2页
第2页 / 共20页
Java面向对象程序设计与系统开发第3章面向对象设计思想_第3页
第3页 / 共20页
Java面向对象程序设计与系统开发第3章面向对象设计思想_第4页
第4页 / 共20页
Java面向对象程序设计与系统开发第3章面向对象设计思想_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《Java面向对象程序设计与系统开发第3章面向对象设计思想》由会员分享,可在线阅读,更多相关《Java面向对象程序设计与系统开发第3章面向对象设计思想(20页珍藏版)》请在金锄头文库上搜索。

1、面向对象程序设计面向对象程序设计与系统开发与系统开发第3章 面向对象设计思想 处处抉抉钱钱搽搽衷衷境境碧碧乳乳鼻鼻避避营营拈拈举举砒砒喊喊装装谣谣狞狞辆辆惕惕谆谆靳靳洱洱灾灾帆帆莱莱舶舶迹迹咆咆谬谬犬犬烹烹Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想2驱动驱动任任务务一一 创建一个抽象类Animal,它包含一个abstract的sound()方法;派生一个子类Dog,实现父类抽象方法sound();创建子类Dog对象,然后调用它的sou

2、nd()方法。撇撇烬烬周周戒戒毯毯守守沃沃饶饶它它童童戊戊粹粹臀臀溜溜袖袖娥娥斡斡魁魁声声日日吾吾渺渺腻腻狐狐撰撰架架滥滥辩辩齿齿禾禾秆秆誉誉Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想3目目标标及知及知识识点点定义和使用抽象类定义和使用抽象类2final关关键键字的使用字的使用3抽象类的概念抽象类的概念1 1错错卸卸粉粉玩玩奖奖咖咖冀冀贰贰顾顾雁雁酪酪僚僚密密印印睡睡竟竟舷舷蒜蒜裕裕厦厦恐恐欢欢作作陵陵路路圭圭什什秦秦旧旧驮驮弯弯渤渤

3、Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想4抽象抽象类类如果一个类中没有包含足够的信息来描绘一个具如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类体的对象,这样的类就是抽象类定义一个抽象类的格式如下 abstractclassAbstractClassNamepublicabstractclassShapepublicabstractdoublearea();/抽象方法抽象方法publicabstractdoub

4、levolume();/抽象方法抽象方法 当一个类被定义成当一个类被定义成abstract类时,表示一个抽象的概念,它不能用类时,表示一个抽象的概念,它不能用new关键字关键字实例化对象,例如上面定义的实例化对象,例如上面定义的Shape类就是一个抽象类,只有被继承并在子类类就是一个抽象类,只有被继承并在子类中重写其抽象方法,它才有意义。中重写其抽象方法,它才有意义。鞋鞋侯侯任任闯闯释释斤斤沟沟恳恳帆帆剖剖在在琴琴元元酵酵环环蛇蛇末末荔荔僳僳饵饵丹丹吵吵诣诣蒋蒋贝贝沮沮囤囤撼撼胚胚孕孕弟弟由由Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想

5、Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想5【例【例3-1】v定义一个代表形状的抽象类,并派生出圆柱体类和长方体类,计算底面半径为2高为3的圆柱体体积和长、宽、高分别为3、2、4的长方体体积。 /定定义义一个形状抽象一个形状抽象类类abstractclassShapedoubleradius,length,width,height;abstractdoublevol();/求体求体积积的抽象方法的抽象方法Shape(doubler,doubleh)/对半径和高进行初始化的构造方法对半径和高进行初始化的构造方法radius=r;heig

6、ht=h;Shape(doublel,doublew,doubleh)/对长宽高进行初始化的构造方法对长宽高进行初始化的构造方法length=l;width=w;height=h;/*圆圆柱体柱体类类*/classCircleextendsShapeCircle(doubler,doubleh)super(r,h);doublevol()/重写父重写父类类抽象方法抽象方法return(3.1416*radius*radius*height);/*长长方体方体类类*/classRectangleextendsShapeRectangle(doublel,doublew,doubleh)super

7、(l,w,h);doublevol()/重写父重写父类类抽象方法抽象方法return(length*width*height);/*主主类类*/publicclassAbstractClassDemopublicstaticvoidmain(Stringargs) Circlec=newCircle(2,3); Rectangler=newRectangle(3,2,4); System.out.println(圆圆柱体体柱体体积积=+c.vol(); System.out.println(长长方体体方体体积积=+r.vol();结结果:果:圆柱体体积圆柱体体积37.6992长方体体积长方体体

8、积24.0【思考】【思考】abstract修修饰饰的的类类一定有一定有abstract修修饰饰的方法的方法吗吗?堰堰集集醒醒阎阎兆兆俭俭牌牌彤彤尾尾扩扩樱樱闽闽械械剑剑踢踢研研递递境境脸脸居居娟娟守守寂寂十十臻臻嘻嘻胳胳祈祈肚肚截截鹅鹅一一Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面向对象软件开发6最终类-final类有一种类是不能派生出子类的,我们叫这种类为最有一种类是不能派生出子类的,我们叫这种类为最终类。即我们用终类。即

9、我们用final来修饰的类。来修饰的类。publicfinalclassTest1戊戊汪汪庇庇陶陶阳阳泰泰决决壬壬瞥瞥厨厨择择焕焕吃吃保保诣诣局局耘耘严严砷砷磁磁膊膊道道程程梁梁絮絮秉秉贴贴旷旷那那舷舷泥泥抬抬Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面向对象软件开发7最终类-final类如果一个类不允许其子类覆盖某个方法,则可以把这个如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为方法声明为final方法方法pub

10、licfinalvoidf2()System.out.println(f2);寞寞饵饵唱唱详详炽炽忆忆铁铁管管宠宠耕耕团团引引傍傍锥锥众众优优莽莽续续煌煌枫枫锤锤印印厕厕吨吨栋栋跨跨络络江江怀怀之之丛丛形形Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面向对象软件开发8【例【例3-2】使用使用final方法的例子方法的例子classTest1publicvoidf1()System.out.println(f1);/无法被子无法被

11、子类类覆盖的方法覆盖的方法publicfinalvoidf2()System.out.println(f2);publicclassTest2extendsTest1publicvoidf1()System.out.println(Test1父父类类方法方法f1被覆盖被覆盖!);publicstaticvoidmain(Stringargs)Test2t=newTest2();t.f1();t.f2();/调调用从父用从父类继类继承承过过来的来的final方法方法结结果:果:Test1父父类类方法方法f1被覆盖被覆盖!f2淹淹罐罐稻稻桔桔蒲蒲淹淹鸟鸟粤粤吻吻踌踌脯脯真真袜袜嫂嫂磨磨侵侵僚僚顿顿

12、裂裂琉琉虚虚幅幅择择壬壬慧慧裤裤漫漫恒恒畔畔仗仗矢矢囱囱Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想9任任务实现务实现123分析类及关系分析类及关系定义抽象类定义抽象类AnimalDog类类利用构造方法利用构造方法为为type属性属性赋值赋值45Dog类实现类实现Animal的的sound()main方法方法进进行行测试测试怨怨爆爆私私苑苑椎椎兹兹正正羊羊驳驳恤恤鼠鼠词词赐赐缠缠躯躯分分蔬蔬拜拜研研妄妄水水头头邦邦卧卧师师浪浪炼炼谣谣敦

13、敦暗暗过过盛盛Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想10驱动驱动任任务务二二 有一个接口AddImp规定了有求和的方法sum();另外一个SubImp接口规定了有减法运算的方法subtract();再声明一个接口Calculatable继承于以上两个接口。创建Calculator类实现接口Calculatable,并生成对象测试该对象的加减功能。鼻鼻虾虾植植痹痹马马芬芬雕雕良良诵诵挥挥棋棋等等悬悬梅梅靡靡豌豌娩娩焚焚毙毙翘翘榜榜踪

14、踪笨笨越越朵朵腻腻态态戮戮幻幻窿窿屉屉铲铲Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想11目目标标及知及知识识点点接口的实现接口的实现2接口的继承接口的继承3多接口多接口4接口的定义接口的定义1 1餐餐鄙鄙曙曙撼撼枕枕你你蜗蜗鞠鞠膊膊酬酬啊啊茁茁呼呼歼歼藏藏味味希希浦浦煌煌煽煽戮戮絮絮如如齐齐做做找找毯毯乍乍眠眠蛾蛾呢呢盗盗Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面

15、向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想12接口的定接口的定义义在Java语言中,用关键字interface来定义接口。接口与类有相似的结构,其定义格式如下:修修饰饰符符interface接口名接口名extends父接口名父接口名/接口体接口体布布凿凿侦侦坟坟砰砰尖尖釜釜窝窝揭揭湿湿史史囊囊诚诚耻耻捡捡畜畜诽诽丫丫扬扬也也卫卫佐佐址址夷夷舆舆漫漫豫豫隧隧闻闻人人陶陶会会Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向

16、向对对象象设设计计思思想想13接口的定接口的定义义例例3-3InterfaceObjectAreadoublePI=3.14;doublearea(doubler); 注意:注意:接口和普通类不一样的是它的方法默认是抽象和公共的,接口和普通类不一样的是它的方法默认是抽象和公共的,属性默认是常量,静态的和公共的属性默认是常量,静态的和公共的质质逆逆菏菏氏氏释释娇娇鹤鹤岂岂射射洼洼理理汁汁悉悉盘盘钙钙贸贸奔奔孜孜态态邓邓做做际际搪搪瞥瞥需需玄玄艳艳寒寒门门值值拥拥缓缓Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序

17、序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想14接口的接口的实现实现 若一个类想统一在某个接口的规范下,想具有这个接口的”身份”,就需要实现这个接口。格式如下:Class类类名名implements接口名接口名碍碍畸畸铅铅敌敌羌羌适适醚醚廊廊寐寐伤伤俏俏九九帮帮袄袄饿饿崎崎衰衰磷磷藏藏晴晴染染烙烙钻钻牲牲钟钟陀陀骑骑搜搜熙熙砧砧膘膘结结Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想接口的接口的实现实现15例例3

18、-4classCircleimplementsObjectAreapublicdoublearea(doubler)/重写重写returnPI*r*r;注意:注意:若实现接口的类不是抽象类,则该类必须实现指定接口的若实现接口的类不是抽象类,则该类必须实现指定接口的所有抽象方法。方法头部应该与接口中的定义完全一致,即所有抽象方法。方法头部应该与接口中的定义完全一致,即有完全相同的方法名、参数表和返回值。有完全相同的方法名、参数表和返回值。腕腕问问诧诧襟襟熙熙泻泻诧诧砍砍伐伐聚聚丁丁格格诀诀斜斜曙曙填填皱皱犀犀泊泊原原否否相相扒扒柳柳逆逆掐掐铃铃腻腻述述帛帛北北棍棍Java面面向向对对象象程程序序

19、设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想16接口接口继继承承 接口也可以通过关键字extends继承其他接口。子接口将继承父接口中所有的常量和抽象方法。Interface接口名接口名extends接口名接口名贰贰剂剂惫惫谍谍刀刀辆辆褂褂邀邀卖卖述述恒恒糠糠抚抚炉炉电电储储神神谩谩唱唱痈痈蓉蓉业业怀怀沫沫搏搏水水木木释释扫扫迭迭悬悬哑哑Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序

20、序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想接口接口继继承承17例例3-5:interfaceAStringa=接口接口A中常量中常量;voidshowA();interfaceBextendsAStringb=接口接口B中常量中常量;voidshowB();interfaceCextendsBStringc=接口接口C中常量中常量;voidshowC();classInterfaceABCimplementsCpublicvoidshowA()/重写重写A接口中的方法接口中的方法System.out.println(a);publicvoidshowB()/重写重

21、写B接口中的方法接口中的方法System.out.println(b);publicvoidshowC()/重写重写C接口中的方法接口中的方法System.out.println(c);辞辞嗣嗣拆拆夷夷灼灼歼歼野野闸闸瓶瓶尝尝阐阐木木贰贰劲劲主主淋淋退退丑丑沫沫驳驳菇菇旦旦剥剥忍忍惮惮劳劳语语蒋蒋悦悦鼎鼎吗吗困困Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想实现多接口18一个一个类类可以同可以同时实现时实现多个接口,接口名之多个接口,接口

22、名之间间用逗号用逗号间间隔。隔。例例3-6:interfaceAvoidmeth1();interfaceBvoidmeth2();classMyClassimplementsA,Bpublicvoidmeth1()System.out.println(Implementmeth1().);publicvoidmeth2()System.out.println(Implementmeth2().);总总郧郧钵钵蒙蒙后后舞舞腥腥即即况况语语柠柠析析爹爹篆篆症症推推缨缨戳戳驳驳咖咖升升羹羹舱舱轿轿阐阐收收重重脾脾浴浴画画陈陈路路Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章

23、面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想19任任务实现务实现123分析接口及类关系分析接口及类关系创建接口创建接口实现接口实现接口45创建对象创建对象调用对象中的方法完成具体功能调用对象中的方法完成具体功能的的隅隅贱贱蛋蛋念念赣赣丸丸艺艺认认场场奖奖良良莫莫力力展展坠坠凝凝亦亦俗俗帆帆邢邢碑碑浚浚寒寒朵朵咆咆核核欲欲兆兆钩钩抹抹构构Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想20课课堂堂总结总结v抽象类的定义和继承v接口的定义和实现养养拌拌员员樱樱见见佛佛导导晕晕呀呀缘缘团团哀哀初初酮酮烬烬孺孺宏宏皇皇靶靶裹裹严严痪痪亥亥修修淑淑境境盯盯潘潘争争刷刷陵陵死死Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想Java面面向向对对象象程程序序设设计计与与系系统统开开发发第第3章章面面向向对对象象设设计计思思想想

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号