欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPT文档下载  

    单元2面向对象程序设计(下).ppt

    • 资源ID:246727       资源大小:498.50KB        全文页数:33页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单元2面向对象程序设计(下).ppt

    第二章,面向对象程序设计,本章内容,2.1类与对象2.2构造方法2.3类的继承2.4抽象类、接口、枚举类型2.5多态,2.3类的继承,继承概述多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。通过extends关键字可以实现类与类的继承class 子类名 extends 父类名 单独的这个类称为父类,基类或者超类;这多个类可以称为子类或者派生类。有了继承以后,我们定义一个类的时候,可以在一个已经存在的类的基础上,还可以定义自己的新成员。,2.3类的继承,通过一个具体案例来演示代码案例1:学生类和老师。定义两个功能(吃饭,睡觉)案例2:加入人类后改进。继承的好处提高了代码的复用性多个类相同的成员可以放到同一个类中提高了代码的维护性如果功能的代码需要修改,修改一处即可让类与类之间产生了关系,是多态的前提其实这也是继承的一个弊端:类的耦合性很强,Java中继承的注意事项,子类只能继承父类所有非私有的成员(成员方法和成员变量)其实这也体现了继承的另一个弊端:打破了封装性子类不能继承父类的构造方法,但是可以通过super(后面讲)关键字去访问父类构造方法。不要为了部分功能而去继承,父类与子类,案例演示子父类中同名和不同名的成员变量结论:在子类方法中访问一个变量首先在子类局部范围找然后在子类成员范围找最后在父类成员范围找(肯定不能访问到父类局部范围)如果还是没有就报错。(不考虑父亲的父亲),父类与子类,super的用法和this很像this代表本类对应的引用。super代表父类存储空间的标识(可以理解为父类引用)用法(this和super均可如下使用)访问成员变量this.成员变量super.成员变量访问构造方法(子父类的构造方法问题讲)this()super()访问成员方法(子父类的成员方法问题讲)this.成员方法()super.成员方法(),父类与子类,子类中所有的构造方法默认都会访问父类中空参数的构造方法为什么呢?因为子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化。每一个构造方法的第一条语句默认都是:super(),父类与子类,如何父类中没有无参构造方法,该怎么办呢?子类通过super去显示调用父类其他的带参的构造方法子类通过this去调用本类的其他构造方法本类其他构造也必须首先访问了父类构造一定要注意:super()或者this(.)必须出现在第一条语句山否则,就会有父类数据的多次初始化看程序写结果,面试题,this关键字和super关键字分别代表什么?以及他们各自的使用场景和作用。,父类与子类,案例演示子父类中同名和不同名的成员方法结论:通过子类对象去访问一个方法首先在子类中找然后在父类中找如果还是没有就报错。(不考虑父亲的父亲),2.3类的继承,方法重写概述子类中出现了和父类中一模一样的方法声明,也被称为方法覆盖,方法复写。使用特点:如果方法名相同,最终使用的是子类自己的。方法重写的应用:当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。,2.3类的继承,方法重写的注意事项父类中私有方法不能被重写子类重写父类方法时,访问权限不能更低父类静态方法,子类也必须通过静态方法进行重写。(其实这个算不上方法重写,但是现象确实如此,至于为什么算不上方法重写,多态中我会讲解),面试题,方法重写和方法重载的区别?方法重载能改变返回值类型吗?OverloadOverride,2.3类的继承,Java只支持单继承,不支持多继承。一个类只能有一个父类,不可以有多个父类。class SubDemo extends Demo/okclass SubDemo extends Demo1,Demo2./errorJava支持的继承体系class Aclass B extends Aclass C extends B,继承练习,学生案例和老师案例讲解使用继承前使用继承后父类中成员private修饰,子类如何访问呢?可以通过super关键字访问父类的带参构造方法。,final关键字,final关键字是最终的意思,可以修饰类,成员变量,成员方法。修饰类,类不能被继承修饰变量,变量就变成了常量,只能被赋值一次修饰方法,方法不能被重写,2.4抽象类、接口、枚举类型,抽象类概述回想前面我们的猫狗案例,提取出了一个动物类。并且我们在前面也创建过了动物对象,其实这是不对的。为什么呢?因为,我说动物,你知道我说的是什么动物吗?只有看到了具体的动物,你才知道,这是什么动物。所以说,动物本身并不是一个具体的事物,而是一个抽象的事物。只有真正的猫,狗才是具体的动物。同理,我们也可以推想,不同的动物吃的东西应该是不一样的,所以,我们不应该在动物类中给出具体体现,而是应该给出一个声明即可。在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。,1、抽象类,抽象类特点抽象类和抽象方法必须用abstract关键字修饰格式abstract class 类名 public abstract void eat();抽象类不一定有抽象方法,有抽象方法的类一定是抽象类抽象类不能实例化那么,抽象类如何实例化呢?按照多态的方式,由具体的子类实例化。其实这也是多态的一种,抽象类多态。抽象类的子类要么是抽象类要么重写抽象类中的所有抽象方法,1、抽象类,成员变量可以是变量也可以是常量构造方法有构造方法,但是不能实例化那么,构造方法的作用是什么呢?用于子类访问父类数据的初始化成员方法可以有抽象方法 限定子类必须完成某些动作也可以有非抽象方法 提高代码服用性,1、抽象类,猫狗案例具体事物:猫,狗共性:姓名,年龄,吃饭老师案例具体事物:基础班老师,就业班老师共性:姓名,年龄,讲课。学生案例具体事务:基础班学员,就业班学员共性:姓名,年龄,班级,学习,吃饭员工案例(备注部分),1、抽象类,一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?abstract不能和哪些关键字共存private冲突final冲突static无意义,2、接口,接口概述继续回到我们的猫狗案例,我们想想狗一般就是看门,猫一般就是作为宠物了,对不。但是,现在有很多的驯养员或者是驯兽师,可以训练出:猫钻火圈,狗跳高,狗做计算等。而这些额外的动作,并不是所有猫或者狗一开始就具备的,这应该属于经过特殊的培训训练出来的,对不。所以,这些额外的动作定义到动物类中就不合适,也不适合直接定义到猫或者狗中,因为只有部分猫狗具备这些功能。所以,为了体现事物功能的扩展性,Java中就提供了接口来定义这些额外功能,并不给出具体实现,将来哪些猫狗需要被培训,只需要这部分猫狗把这些额外功能实现即可。,2、接口,接口特点接口用关键字interface表示格式:interface 接口名 类实现接口用implements表示格式:class 类名 implements 接口名 接口不能实例化那么,接口如何实例化呢?按照多态的方式,由具体的子类实例化。其实这也是多态的一种,接口多态。接口的子类要么是抽象类要么重写接口中的所有抽象方法,2、接口,成员变量只能是常量默认修饰符 public static final构造方法没有,因为接口主要是扩展功能的,而没有具体存在成员方法只能是抽象方法默认修饰符 public abstract,类与类,类与接口以及接口与接口的关系,类与类继承关系,只能单继承类与接口实现关系,可以单实现,也可以多实现。还可以在继承一个类的同时实现多个接口接口与接口继承关系,可以单继承,也可以多继承,接口练习,猫狗案例,加入跳高的额外功能。定义一个名称为MyInterface的接口,接口中声明用于求两个整数之和的add()方法和用于求3个整数之积的volume()方法。定义一个InterfaceDemo类来实现接口。,3、枚举,枚举类型的概念一种引用类型用于表示若干个常量组成的数据集合。枚举类型主要应用于表示数量较少的常量组成的集合。枚举类型定义的基本格式访问控制修饰符 enum/枚举类型元素枚举类型元素的调用枚举类型名.元素名,2.5多态,多态概述某一个事物,在不同时刻表现出来的不同状态。举例:猫可以是猫的类型。猫 m=new 猫();同时猫也是动物的一种,也可以把猫称为动物。动物 d=new 猫();在举一个例子:水在不同时刻的状态多态前提和体现有继承关系有方法重写有父类引用指向子类对象,多态案例及成员访问特点,多态案例按照前提写一个多态的案例成员访问特点成员变量编译看左边,运行看左边成员方法编译看左边,运行看右边静态方法编译看左边,运行看左边所以前面我说静态方法不能算方法的重写,多态的好处和弊端,多态的好处提高了程序的维护性(由继承保证)提高了程序的扩展性(由多态保证)多态的弊端不能访问子类特有功能那么我们如何才能访问子类的特有功能呢?多态中的转型,多态中的转型问题,向上转型从子到父父类引用指向子类对象向下转型从父到子父类引用转为子类对象多态成员访问及转型的理解孔子装爹案例,多态练习,猫狗案例练习多态版不同地方饮食文化不同的案例Personeat()SouthPersoneat()NorthPersoneat(),

    注意事项

    本文(单元2面向对象程序设计(下).ppt)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开