《java面向对象程序设计第2版第7章-面向对象的几个基本原则.ppt》由会员分享,可在线阅读,更多相关《java面向对象程序设计第2版第7章-面向对象的几个基本原则.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java面向对象程序设计面向对象程序设计第第2 2版版第第7章章配合第第2版例子源代码一起使用版例子源代码一起使用Power point 制作:耿祥义 张跃平面向对象的几个基本原则 主要内容主要内容UML类图简介类图简介面向抽象原则面向抽象原则开开-闭原则闭原则多用组合少用继承原则多用组合少用继承原则高内聚高内聚-低耦合原则低耦合原则难点难点开开-闭原则闭原则导读导读 本章给出面向对象设计的几个基本原则,了解这些基本原则,有助于知道如何使用面向对象语言编写出易维护、易扩展和易复用的程序代码。7.1 UML类图简介类图简介 UML(Unified Modeling Language)类类图图(C
2、lass Diagram)属属于结构图,常被用于描述一个系统的静态结构。于结构图,常被用于描述一个系统的静态结构。7.1.1 类的类的UMLUML图图 在在类类的的UML图图中中,使使用用一一个个长长方方形形描描述述一一个个类类的的主主要要构构成,将长方形垂直地分为三层。成,将长方形垂直地分为三层。第第1 1层是名字层层是名字层 第第2 2层层是是变变量量层层,也也称称属属性性层层,列列出出类类的的成成员员变变量量及及类类型型,格格式是式是“变量名字:类型变量名字:类型”。第第3 3层层是是方方法法层层,也也称称操操作作层层,列列出出类类的的方方法法及及返返回回类类型型,格格式式是是“方方法法
3、名名字字(参参数数列列表表):类型类型”。7.1.2 接口(接口(InterfaceInterface)表表示示接接口口的的UMLUML图图使使用用一一个个长长方方形形描描述述一一个个接接口口的的主主要要构构成成,将长方形垂直地分为三层。将长方形垂直地分为三层。顶顶 部部 第第 1 1层层 是是 名名 字字 层层,用用interface修饰名字。修饰名字。第第2 2层层是是常常量量层层,列列出出接接口口中中的的常常量量及及类类型型,格格式式是是“常常量量名名字:类型字:类型”。第第3 3层层是是方方法法层层,也也称称操操作作层层,列列出出接接口口中中的的方方法法及及返返回回类类型型,格格式式是
4、是“方方法法名名字字(参参数数列列表表):类型类型”。7.1.3 泛化关系(泛化关系(GeneralizationGeneralization)对对于于面面向向对对象象语语言言,UMLUML中中所所说说的的泛泛化化关关系系就就是是指指类类的的继承关系。继承关系。如如果果一一个个类类是是另另一一个个类类的的子子类类,那那么么UMLUML通通过过使使用用一一个个实实线线连连接接两两个个类类的的UMLUML图图来来表表示示二二者者之之间间的的继继承承关关系系,实实线线的的起起始始端端是是子子类类的的UMLUML图图,终终点点端端是是父父类类的的UMLUML图图,但但终终点点端端使使用用一一个个空空心
5、心的的三三角角形形表示实线的结束。表示实线的结束。7.1.4 关联关系(关联关系(AssociationAssociation)如如果果A A类类中中成成员员变变量量是是用用B B类类(接接口口)来来声声明明的的变变量量,那那么么A A和和B B的的关关系系是是关关联联关关系系,称称A A关联于关联于B B。如如果果A A关关联联于于B B,那那么么UMLUML通通过过使使用用一一个个实实线线连连A A和和B B的的UMLUML图图,实实线线的的起起始始端端是是A A的的UMLUML图图,终终点点端端是是B B的的UMLUML图图,但但终终点点端端使使用用一一个个指指向向B B的的UMLUML
6、图图的的方方向向箭箭头头表表示示实实线线的的结结束。束。7.1.5 依赖关系(依赖关系(DependencyDependency)如如果果A A类类中中某某个个方方法法的的参参数数用用B B类类(接接口口)来来声声明明的的变变量量或或某某个个方方法法返返回回的的数数据据类类型型是是B B类类型型的的,那那么么A A和和B B的的关关系系是是依依赖赖关关系系,称称A A依依赖赖于于B B。如如果果A A依依赖赖于于B B,那那么么UMLUML通通过过使使用用一一个个虚虚线线连连A A和和B B的的UMLUML图图,虚虚线线的的起起始始端端是是A A的的UMLUML图图,终终点点端端是是B B的的
7、UMLUML图图,但但终终点点端端使使用用一个指向一个指向B B的的UMLUML图的方向箭头表示虚线的结束。图的方向箭头表示虚线的结束。7.1.6 实现关系(实现关系(RealizationRealization)如如果果一一个个类类实实现现了了一一个个接接口口,那那么么类类和和接接口口的的关关系系是是实实现现关关系系,称称类类实实现现接接口口。UMLUML通通过过使使用用虚虚线线连连接接类类和和它它所所实实现现的的接接口口,虚虚线线起起始始端端是是类类,虚虚线线的的终终点点端端是是它它实实现现的的接接口口,但但终终点点端端使使用用一一个个空空心心的的三三角角形形表示虚线的结束。表示虚线的结束
8、。7.1.7 注释(注释(AnnotationAnnotation)UMLUML使用注释为类图提供附加的说明。使用注释为类图提供附加的说明。UMLUML在在一一个个带带卷卷角角的的长长方方形形中中显显示示给给出出的的注注释释,并并使使用用虚虚线线将将这这个个带带卷卷角角的的长长方方形形和和所所它它所所注注释释的的实实体体连接起来。连接起来。7.2 面向抽象原则面向抽象原则 7.2.1 抽象类和接口抽象类和接口 在在这这里里我我们们提提炼炼一一些些抽抽象象类类和和接接口口二二者者最最重重要要的的知知识点,以便使读者更加容易的理解面向抽象的原则。识点,以便使读者更加容易的理解面向抽象的原则。1 1
9、 抽象(抽象(abstractabstract)类具有如下特点:类具有如下特点:抽象类中可以有抽象类中可以有abstractabstract方法,也可以有非方法,也可以有非abstractabstract方法。方法。抽象类不能用抽象类不能用newnew运算符创建对象。运算符创建对象。如如果果一一个个非非抽抽象象类类是是某某个个抽抽象象类类的的子子类类,那那么么它它必必须须重重写写父父类类的的abstractabstract方法。方法。抽象类声明的对象做上转型对象。抽象类声明的对象做上转型对象。A.java,B.javaA.java,B.java,Application.javaApplicat
10、ion.java 2 2接口(接口(interfaceinterface)具有如下特点:具有如下特点:接口中只可以有接口中只可以有publicpublic权限的权限的abstractabstract方法,不能有非方法,不能有非abstractabstract方法。方法。接接口口由由类类去去实实现现,即即一一个个类类如如果果实实现现一一个个接接口口,那那么么它它必必须须重重写写接接口口中中的的abstractabstract方法。方法。接口回调。接口回调。Com.java,ComImp.java,Application.javaCom.java,ComImp.java,Application.j
11、ava 7.2.2 面向抽象面向抽象 所所谓谓面面向向抽抽象象编编程程,是是指指当当设设计计一一个个类类时时,不不让让该该类类面面向向具具体体的的类类,而而是是面面向向抽抽象象类类或或接接口口,即即所所设设计计类类中中的的重重要要数数据据是是抽抽象象类类或或接接口口声声明明的的变变量量,而不是具体类声明的变量。而不是具体类声明的变量。Circle.java,Pillar.java Circle.java,Pillar.java Geometry.java,Pillar.java,Circle.java,Rectangle.java,Application.java Geometry.java,
12、Pillar.java,Circle.java,Rectangle.java,Application.java 7.3 开开-闭原则闭原则 所所 谓谓 “开开-闭闭 原原 则则”(Open-Closed Open-Closed PrinciplePrinciple)就就是是让让你你的的设设计计应应当当对对扩扩展展开开放放,对修改关闭。对修改关闭。7.4 多用组合少用继承原则多用组合少用继承原则 方方法法复复用用的的两两种种最最常常用用的的技技术术就就是是类类继继承承和和对象组合。对象组合。7.4.1 继承与复用继承与复用 子子类类继继承承父父类类的的方方法法作作为为自自己己的的一一个个方方法法
13、,就就好好像像它它们们是是在在子子类类中中直直接接声声明明一一样样,可可以以被被子子类类中中自自己己声声明明的的任任何何实实例例方方法法调调用用。也也就就是是说说,父类的方法可以被子类父类的方法可以被子类以继承的方式复用以继承的方式复用。7.4.2 组合与复用组合与复用 一一个个类类可可以以把把对对象象作作为为自自己己的的成成员员变变量量,如如果果用用这这样样的的类类创创建建对对象象,那那么么该该对对象象中中就就会会有有其其它它对对象象,也也就就是是说说该该对对象象将将其其他他对对象象作作为为自自己己的的组组成成部部分分(这这就就是是人人们们常常说说的的Has-AHas-A),或或者者说说该该
14、对象是由几个对象组合而成对象是由几个对象组合而成。7.4.3 多用组合多用组合 少用继承少用继承 之之所所以以提提倡倡多多用用组组合合,少少用用继继承承,是是因因为为在在许许多多设设计计中中,人人们们希希望望系系统统的的类类之之间间尽尽量量是是低低耦耦合的关系,而不希望是强偶合关系。合的关系,而不希望是强偶合关系。7.5 高内聚高内聚-低耦合原则低耦合原则 如如果果类类中中的的方方法法是是一一组组相相关关的的行行为为,则则称称该该类类是是高高内聚的,反之称为低内聚的。内聚的,反之称为低内聚的。高内聚便于类的维护,而低内聚不利于类的维护。高内聚便于类的维护,而低内聚不利于类的维护。低低耦耦合合就就是是尽尽量量不不要要让让一一个个类类含含有有太太多多的的其其它它类类的的实实例例的的引引用用,以以避避免免修修改改系系统统的的其其中中一一部部分分会会影影响响到到其其它部分。它部分。