欢迎来到天天文库
浏览记录
ID:33725396
大小:1012.00 KB
页数:36页
时间:2019-02-28
《java语言基础——面向对象编程(ii)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java语言基础—面向对象编程(II)主讲:董旭源Contents面向对象的三大特性概述封装继承访问控制多态三大特性封装继承多态封装什么是封装把对象的私有信息与内部实现细节进行隐藏该隐藏的要隐藏,能暴露的才暴露做成一个组件,便于各司其职,提高可复用性如何封装状态与行为隐藏访问控制•public和private的区别•protected信息隐藏•把属性声明为private、protected•通过公开(public)的getter/setter方法来控制访问方法私有•对于一些实现细节声明为private,实现对外不可视•私有的方法只能在类的内部调用封装的好处属性的读
2、写控制,数据的安全检查隐藏实现细节减少修改、扩展类时对外界组件的影响,增强易维护性提高软件的可复用性引子提供一个动物园的仿真系统现在动物园里有的动物•狮子(Lion):10只•河马(Hippo):3只•华南虎(SCTiger):4只•狗(Dog):25只•猫(Cat):30只•狼(Wolf):7只需要记录每一只动物的基本信息•动物的编号、年龄、喂养的食物•每一种动物的其他特征需要描述动物的行为特征•基本行为特征:吃、睡、散步等•各种动物自身的行为特征设计一个动物仿真程序的继承树设计一个动物仿真程序的继承树设计一个动物仿真程序的继承树我吃素,可脾气在狗群中,吠叫声是个不太好…
3、…很重要的事情,该声音必须有代表性和独一无二性设计一个动物仿真程序的继承树狼和狗之间也可以共享某些东西对呀,Lion、Tiger和Cat之间有共同的部分设计一个动物仿真程序的继承树它们都它们都是是犬齿猫科动物动物继承的定义(What)基类(父类/超类)与子类(派生类)我们把一些类的共性再抽取出来,放到一个类中,那么此类就是这一些类的父类,我们就可以说这些子类继承自父类继承意味着子类继承了父类的成员,成员的意思就是实例变量和方法单继承vs.多继承多继承(Multipleinheritance)网状复杂•元素与元素之间(类与类/对象与对象)的关系复杂•遍历时算法很复杂单继承(S
4、ingleinheritance)单根树状简单Java的类是单继承使语言简单、灵活使垃圾回收提供方便的实现方法的覆盖形式方法名相同参数列表相同•参数的个数、类型、顺序返回类型一致•若J2SE1.4之前的版本都严格要求类型相同–编译的命令:javac–source1.4Inheritance.java•对于JavaSE1.5later版本,返回类型可以是父类含义子类的实现细节发生了变化体现子类的个性方法覆盖(续)方法的访问控制子类比父类不能更窄化抛出的异常不能更宽泛子类扩展父类增加方法根据子类型与父类型的差异提供更多的方法为什么继承?(Why)继承的目
5、的、作用避免了重复的代码,提高了程序的可重用性定义出(父类与子类)共同的协议何时使用继承(When)从客观世界的角度事物与事物之间的关系•is-a:使用继承•has-a:组合、聚集什么时候不适宜使用继承?继承的缺点程序结构会比较复杂层次一旦多了,就会变得很复杂破坏封装方法访问的控制:子类>父类代码复用手段除了继承还有组成、聚合等优先考虑后者继承vs.组合何时才会使用继承?组成vs.聚合类与类之间的关系依赖关联继承(泛化)实现略super构造方法不能被继承在构造方法中super()vs.this()但只能取其一编译器会提供默认的super(…
6、)调用若一个类没有显式继承任何类compiler会自动添加对Object类的继承Object是JVM中唯一没有父类的类用法子类的构造器调用父类的构造方法调用父类的成员•super.创建对象的过程若当前类存在继承关系类加载递归地构建父类对象分配内存空间、赋默认值为每一个父类的实例变量初始化调用该类的构造方法练习某公司的雇员分为以下若干类:Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份。方法:getSalary(intmonth)根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。SalariedEmployee:Em
7、ployee的子类,拿固定工资的员工。属性:月薪HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放。属性:每小时的工资、每月工作的小时数SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员,工资由底薪
此文档下载收益归作者所有