预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共44页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

︳Java程序设计 第五章面向对象编程 余烨 yeyucvis@gmail.com http://cadcg.hfut.edu.cn 本章学习提示 本章学习Java语言中面向对象编程的具体实施过程。 封装与继承 覆盖与重载 多态 类的强制转换 目录 1封装与继承 2覆盖与重载 3多态机制 4类的转换 封装性 People name、sex、height、private: salary、propertysalary、property eat()、sleep()、changeSalary() work()、date()calcProperty() 将被描述的实体的属性和行为封装在一起,看作一个不 可分割的整体,形成程序中不可分割的独立单位。 被封装的某些信息在封装体外是不可见的,只能通过内 部的方法来改变它,通常称这些信息被隐藏了。 被封装的属性和行为中,规定了有些被隐藏在封装体内, 有些外部可见的不同的访问权限。 回顾不同的访问权限 publicprotecteddefaultprivate 同类√√√√ 同包不同类 √√√× 不同包,子 √√×× 类 不同包,非 √××× 子类 封装 所谓封装表现在以下几个方面 1.在类的定义中设置对对象中的成员变量和方法 进行访问的权限。 2.提供一个统一供其它类引用的方法 3.其它对象不能直接修改本对象所拥有的属性和 方法。 封装的作用 通过封装,实现了模块化和信息隐藏,保证了 数据的安全性和系统的严密性 封装实现了使用者和设计者的分离,提高了程 序的可重用性 类的继承——引例 定义一个动物的类,具有高度、重量等特征, 具有吃饭、睡觉、呼吸等行为。 定义一个鱼类,具有同样的特征和行为。 怎么办? 要重新再写一遍么? 用继承吧! 通过关键字extends让鱼类继承动物类 Likemother,likefather //用extends实现类的继承实例 classAnimal{ protectedfloatheight,weight; voideat(){System.out.println("animaleat");} voidsleep(){System.out.println("animalsleep");} voidbreathe(){System.out.println("animalbreathe");}} classFishextendsAnimal//鱼类继承了Animal类 {} classIntegration{ publicstaticvoidmain(String[]args){ Animalan=newAnimal(); Fishfh=newFish(); an.breathe(); fh.breathe(); Example5_01 }} 类的继承 理解继承是理解面向对象程序设计的关键 Java中,通过关键字extends继承一个已有的类,被 继承的类称为父类(超类,基类),新的类称为子 类(派生类)。 在Java中,不允许多重继承。 classFish{…} classPeople{…} classMermaidextendsFish,People{…} 每个类最多只有一个直接的父类 终止继承——关键字final 类的继承 类之间的继承关系是现实世界中遗传关系的直接模拟, 它表示类之间的内在联系以及对属性和操作的共享, 即子类可以沿用父类(被继承类)的某些特征。子类 也可以具有自己独立的属性和操作。 子类从父类继承有两个主要的方面: 1.属性的继承。例如:鱼可以继承动物的高度、重量等属 性。 2.方法的继承。例如:鱼类可以继承动物吃饭、睡觉、呼 吸的行为。 属性继承和隐藏:子类不能访问父类的private成员, 但子类可以访问其父类的public、protected成员。 构造方法的继承 构造方法的继承应遵守以下原则 1.如果子类没有构造方法,则它继承父类无参数 的构造方法作为自己的构造方法;(子类可以 无条件的继承父类不含参数的构造方法) 2.如果子类有构造方法,那么在创建子类对象时, 则将先执行继承下来的父类的构造方法,然后 再执行自己的构造方法 实例 classAnimal{ floatheight,weight; Animal(){ System.out.println("Animalisconstructedwithout parameters");} Animal(floatheight,floatweight){ System.out.println("Animalisconst