java语言基础——面向对象编程(ii)

java语言基础——面向对象编程(ii)

ID:33725396

大小:1012.00 KB

页数:36页

时间:2019-02-28

java语言基础——面向对象编程(ii)_第1页
java语言基础——面向对象编程(ii)_第2页
java语言基础——面向对象编程(ii)_第3页
java语言基础——面向对象编程(ii)_第4页
java语言基础——面向对象编程(ii)_第5页
资源描述:

《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的子类,有固定底薪的销售人员,工资由底薪

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。