ch05面向对象编程.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:44 大小:1.8MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

ch05面向对象编程.pdf

ch05面向对象编程.pdf

预览

免费试读已结束,剩余 34 页请下载文档后查看

15 金币

下载此文档

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

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

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

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

︳Java程序设计第五章面向对象编程余烨yeyucvis@gmail.comhttp://cadcg.hfut.edu.cn本章学习提示本章学习Java语言中面向对象编程的具体实施过程。封装与继承覆盖与重载多态类的强制转换目录1封装与继承2覆盖与重载3多态机制4类的转换封装性Peoplename、sex、height、private:salary、propertysalary、propertyeat()、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("Animalisconstructedwithoutparameters");}Animal(floatheight,floatweight){System.out.println("Animalisconst