ACCPSJava面向对象编程.pptx

上传人:莉*** 文档编号:73645322 上传时间:2023-02-21 格式:PPTX 页数:38 大小:633.73KB
返回 下载 相关 举报
ACCPSJava面向对象编程.pptx_第1页
第1页 / 共38页
ACCPSJava面向对象编程.pptx_第2页
第2页 / 共38页
点击查看更多>>
资源描述

《ACCPSJava面向对象编程.pptx》由会员分享,可在线阅读,更多相关《ACCPSJava面向对象编程.pptx(38页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、回顾及作业点评如何从现实世界抽象出类?方法重载的规则有哪些?如何实现封装?提问提问提问提问1/38第1页/共38页预习检查如何继承一个类?使用继承有什么好处?抽象类和抽象方法的特点是什么?提问提问提问提问2/38第2页/共38页本章任务优化电子宠物系统实现汽车租赁系统计价功能3/38第3页/共38页本章目标掌握继承的优点和实现掌握子类重写父类方法掌握继承下构造方法的执行过程掌握抽象类和抽象方法的使用掌握final修饰属性、方法和类4/38第4页/共38页为什么使用继承 2-1这两个类图有什么问题?-name:String-health:int-love:int-strain:StringDog

2、+print():void+getName():String+getHealth():int+getLove():int+getStrain:String+Dog()-name:String-health:int-love:int-sex:StringPenguin+print():void+getName():String+getHealth():int+getLove():int+getSex():String+Penguin()将重复将重复代码代码抽取到抽取到父类中父类中问题问题问题问题使用继承优化设计5/38第5页/共38页为什么使用继承 2-2使用继承优化后:减少代码量减少代码量 方

3、便修改代码方便修改代码 子类与父类是is-a关系6/38第6页/共38页如何使用继承使用继承编写父类编写子类,继承父类class Pet /公共的属性和方法class Dog extends Pet /子类特有的属性和方法class Penguin extends Pet 只能继承一个父类只能继承一个父类 继承关键字继承关键字 C#用用“:”对比7/38第7页/共38页理解继承4-1子类访问父类成员访问父类构造方法访问父类属性访问父类方法 使用super关键字,super代表父类对象 super.name;super.print();演示示例1:使用继承优化电子宠物系统super();supe

4、r(name);在子类构造方法中调用且必须是第一句8/38第8页/共38页理解继承4-2子类可以继承父类的所有些资源吗?演示示例2:不能被继承的情况 提问提问提问提问构造方法子类与父类不在同包,使用默认访问权限的成员private成员 不能被继承的父类成员9/38第9页/共38页理解继承4-3访问修饰符protected可以修饰属性和方法本类、同包、子类可以访问访问修饰符总结 访问修饰符访问修饰符本类本类同包同包子类 其他其他private默认默认(friendly)protectedpublic10/38第10页/共38页理解继承4-4多重继承关系的初始化顺序是怎样的?演示示例3:断点追踪初

5、始化过程 子类构造方法子类属性父类构造方法父类属性 提问提问提问提问11/38第11页/共38页在何处使用继承何时使用继承?继承与真实世界类似只要说“猫是哺乳动物”,猫的很多属性、行为 就不言自明了藏獒是一种狗继承是代码重用的一种方式 将子类共有的属性和行为放到父类中 符合is-a关系的设计使用继承 问题问题问题问题12/38第12页/共38页小结2-1继承使用什么关键字?子类可以继承父类的哪些成员?使用继承有什么好处?提问提问提问提问13/38第13页/共38页小结2-2阅读代码,说出运行结果class Car private int site=4;/座位数 Car()System.out.

6、println(载客量是+site+人);public void setSite(int site)this.site=site;void print()System.out.print(载客量是+site+人);class Bus extends Car Bus(int site)setSite(site);public static void main(String args)Bus bus=new Bus(20);bus.print();载客量是4人载客量是20人 代码阅读代码阅读代码阅读代码阅读14/38第14页/共38页方法重写使用继承后效果 子类重写父类方法 问题问题问题问题调用父

7、类的print()方法,不能显示Dog的strain信息和Peguin的sex信息如何实现如下效果呢?演示示例4:使用重写优化电子宠物系统 15/38第15页/共38页小结2-1构造方法也会被重写吗?方法重写的规则方法名相同参数列表相同返回值类型相同或者是其子类;访问权限不能严于父类方法重载与方法重写提问提问提问提问 不能被继承,因此不能重写 位置位置方法名方法名参数表参数表返回值返回值访问修饰符访问修饰符方法重写方法重写子类子类相同相同相同相同相同或是相同或是其子类其子类不能比父类更不能比父类更严格严格方法重载方法重载同类同类相同相同不相同不相同无关无关无关无关16/38第16页/共38页小

8、结2-2super关键字来访问父类的成员super只能出现在子类的方法和构造方法中super调用构造方法时,只能是第一句super不能访问父类的private成员17/38第17页/共38页学员操作优化电子宠物系统2-1训练要点:继承子类重写父类方法理解继承中的初始化过程需求说明:优化电子宠物系统使用继承实现Dog类和Penguin类打印宠物信息指导指导指导指导讲解需求说明18/38第18页/共38页学员操作优化电子宠物系统2-2实现思路:继承 指导指导指导指导完成时间:20分钟19/38第19页/共38页共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解共性问题集中讲解2

9、0/38第20页/共38页抽象类以下代码有什么问题?Java中也使用抽象类,限制实例化Pet pet=new Pet(贝贝,20,40);pet.print();实例化Pet没有意义 public abstract class Pet 在在C#中通过抽象类中通过抽象类实现实现问题问题问题问题21/38第21页/共38页抽象方法以下代码有什么问题?abstract也可用于方法抽象方法抽象方法没有方法体抽象方法必须在抽象类里抽象方法必须在子类中被实现,除非子类是抽象类public abstract void print();没有方法体没有方法体 public abstract class Pet

10、public void print()/每个子类的实现不同每个子类的实现不同问题问题问题问题22/38第22页/共38页学员操作抽象Pet类2-1训练要点:抽象类的定义和继承抽象方法定义和重写 需求说明:修改Pet类为抽象类修改Pet类的print()方法为抽象方法输出Dog信息指导指导指导指导讲解需求说明23/38第23页/共38页学员操作抽象Pet类2-2实现思路修改Pet类为抽象类,修改print()为抽象方法Dog类继承Pet类,实现print()方法运行测试注释掉Dog类中print()方法,运行测试类查看错误信息编写注释指导指导指导指导完成时间:15分钟24/38第24页/共38页

11、共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解共性问题集中讲解25/38第25页/共38页final用法Penguin类不希望再被其他类继承?使用final类方法不希望被重写?使用final方法属性值不希望被修改?使用常量public final class Penguin extends Pet /最终版的类最终版的类 public final void print()/最终版的方法最终版的方法public class Penguin final String home=南极;/居住地 public void setHome(String name)this.home

12、=home;/错误,不可再赋值 最终版的属性值最终版的属性值问题问题问题问题26/38第26页/共38页常见错误请指出下面代码的错误class Dog String name;public Dog(String name)this.name=name;class Test public static void main(String args)final Dog dog=new Dog(欧欧);dog.name=美美;dog=new Dog(亚亚);使用使用final修饰引用型变量修饰引用型变量,变量变量不可以再指向另外的对象不可以再指向另外的对象使用final修饰引用型变量,变量的值是固定不

13、变的,而变量所指向的对象的属性值是可变的27/38第27页/共38页综合案例某汽车租赁公司出租多种车辆,车型及租金情况如下:编写程序实现计算租赁价问题问题问题问题轿车轿车客车(金杯、金龙)客车(金杯、金龙)车型车型别克商务别克商务舱舱GL8宝马宝马550i别克林别克林荫大道荫大道16座座日租费日租费(元元/天天)600500300800150028/38第28页/共38页综合案例分析2-1发现类发现类的属性分析分析分析分析29/38第29页/共38页综合案例分析2-2发现类的方法优化设计编写程序入口分析分析分析分析30/38第30页/共38页学员操作编写MotoVehicle、Car、Bus类

14、需求说明:根据分析编写MotoVehicle、Car、Bus类练习练习练习练习完成时间:25分钟31/38第31页/共38页学员操作编写测试代码运行需求说明:编写测试代码运行练习练习练习练习完成时间:5分钟32/38第32页/共38页共性问题集中讲解常见问题及解决办法代码规范问题调试技巧共性问题集中讲解共性问题集中讲解33/38第33页/共38页总结2-1继承符合is-a关系使用extends关键字代码复用方法重写的规则方法名相同参数列表相同返回值类型相同或者是其子类访问权限不能严于父类super关键字来访问父类的成员super只能出现在子类的方法和构造方法中super调用构造方法时,只能是第一句super不能访问子类的private成员34/38第34页/共38页总结2-2抽象类和抽象方法抽象类不能被实例化可以有0多个抽象方法非抽象类必须重写父类的所有抽象方法final修饰符修饰的类,不能再被继承修饰的方法,不能被子类重写修饰的变量将变成常量,只能在初始化时进行赋值35/38第35页/共38页作业课后作业教员备课时根据班级情况在此添加内容,应区分必做、选做内容,以满足不同层次学员的需求预习作业预习目标了解什么是多态及如何实现多态。预习下一章学生用书,完成预习作业36/38第36页/共38页37/38第37页/共38页38/35感谢您的观看!第38页/共38页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com