版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第二章 面向对象的基本原则,授课教师:杨杰明,2,目录,面向抽象原则 开-闭原则 多组合少继承原则 高内聚-低耦合原则,3,课前思考,抽象类的特点及实现方式。 接口的特点及实现方式。,4,1. 面向抽象原则- 1.1 抽象类特点,抽象类中可以有抽象方法,也可以有非抽象方法 抽象类不能用new运算符创建对象 如果一个子类继承一个抽象类,该子类要么实现父类的所有抽象方法,要么该子类也声明为抽象类。 可以作为上转型对象。,5,1. 面向抽象原则 - 1.1 抽象类示例,abstract class A public abstract int add(int a, int b); class B
2、extends A public int add(int a, int b) return a+b; public class Application public static void main(String args) A a = new B(); int m = a.add(3,2); System.out.println(m); ,6,1. 面向抽象原则- 1.2 接口特点,接口中只可以有public权限的抽象方法,不可以有非抽象方法 接口中的成员变量都默认是共有的和终结类型的 接口不能用new创建对象,必须用类去实现 接口的回调:在接口类型的变量中可以存储实现该接口的类实例的引用,
3、并通过该接口变量来访问类实例的方法。,7,1. 面向抽象原则- 1.2 接口示例,interface Com public abstract int sub(int x, int y); class ComImp implements Com public int sub(int x, int y) return x y; public class Application public static void main(String args) Com com = new ComImp(); int m = com.sub(8,2); System.out.println(m); ,8,1.
4、面向抽象原则-1.3 面向抽象,指当设计类时,不让该类面向具体的类,而是面向抽象类或接口,即所设计类中重要数据是抽象类或接口的变量,而不是具体类的变量。,9,1. 面向抽象原则- 1.3 面向抽象示例,public class Circle double r; public Circle(double r) this.r =r; public double getArea() return Math.PI*r*r; ,public class Pillar Circle bottom; double height; public Pillar(Circle bottom, double hei
5、ght) this.bottom = bottom; this.height = height; public double getVolume() return height*bottom.getArea(); ,问题:如果用户不需要圆柱体,而是底为三角形或矩形的柱体,怎么办呢?:,10,1. 面向抽象原则- 1.3 面向抽象示例改进,public abstract class Geometry public abstract double getArea(); ,public class Pillar Geometry bottom; double height; public Pilla
6、r(Geometry bottom, double height) this.bottom = bottom; this.height = height; public double getVolume() return height*bottom.getArea(); ,11,1. 面向抽象原则- 1.3 面向抽象示例改进,public class Circle extends Geometry double r; public Circle(double r) this.r =r; public double getArea() return Math.PI*r*r; ,public cl
7、ass Rantangle extends Geometry double a,b; public Rantangle(double a,double b) this.a =a; this.b =b; public double getArea() return a*b; ,12,2. 开-闭原则,设计应当对扩展开放,对修改关闭。 如果遵守了“开-闭原则”,那么这个设计一定是易维护的,因为在设计中增加新的模块时,不必去修改设计中的核心模块。,13,3. 多组合少继承-继承的优缺点,继承的优点 子类可以继承父类的方法 子类可以重写父类的方法 继承的缺点 子类继承父类的方法在编译的时候就确定了,在
8、运行期不能改变从父类继承的行为 子类和父类之间是强耦合关系,父类行为变化必然导致子类行为发生变化 通过继承进行的复用也称“白盒”复用,父类的内部细节对于子类是完全可见的。,14,3. 多组合少继承-组合的优缺点,组合: 一个类可以将其他类对象作为自己的成员变量,从而调用这些对象的方法。 组合的优点 通过组合的复用也称为“黑盒”复用,因为当前对象只能委托其包含的对象调用它们的方法,但方法的实现细节不可见 当前对象和被包含对象的关系是弱耦合关系,因为修改当前对象包含的对象的代码,不必修改当前对象的代码、 当前对象可以在运行时改变其包含的对象 组合的缺点 导致对象过多 为了能够组合多个对象,必须仔细地对接口进行定义,15,3. 多组合少继承,设计中避开类继承的缺点 充分使用对象组合的优点。,16,4.高内聚-低耦合原则,高内聚 如果类中的方法是一组相关的行为,则称该类是高内聚的,反之称为低
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年简单的合作协议标准版本(二篇)
- 2024年业务员招聘合同(二篇)
- 2024年大型吊车租赁合同(二篇)
- 语文考试复习总结
- 中考复习常用字词错别字辨析
- 防爆电气作业考试题库试卷及答案
- 某软件公司研发中心管理办法
- 棒料切割机设计
- 2020山东枣庄三中高一自主招生考试语文试卷真题(含答案详解)
- 储能电池及逆变器扩产项目可行性研究报告
- 2024年政工师资格考试复习题库(浓缩500题)
- 三废环保管理培训
- 23秋国家开放大学《液压气动技术》形考任务1-3参考答案
- 体育俱乐部管理知到章节答案智慧树2023年成都文理学院
- 2021年白猫杯年上海市白猫杯青少年应用化学与技能竞赛高中组复赛试卷及答案
- 婴幼儿学习环境的评价量表
- 2021年工商管理研究硕士论文
- 重点专科汇报版本ppt课件
- 销售考核评分表(月度
- 国标铜排载流量表.docx
- 全身式安全带的使用方法(简版)
评论
0/150
提交评论