《类图和对象》PPT课件.ppt

上传人:wuy****n92 文档编号:79012223 上传时间:2023-03-19 格式:PPT 页数:46 大小:264KB
返回 下载 相关 举报
《类图和对象》PPT课件.ppt_第1页
第1页 / 共46页
《类图和对象》PPT课件.ppt_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《《类图和对象》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《类图和对象》PPT课件.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第5章章 类图和对象图类图和对象图 重庆文理学院5.1 类的定义类的定义类名属性操作2面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.1.1 类的属性类的属性可见性可见性属性名属性名:类型类型多重性多重性次序次序=初值初值特性特性+public#protected-privateRoseUML可见性可见性+size:Area=(100,100)#visibility:Boolean=falsecolors:Color3points:Point2.*orderedname:String0.13面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.1.2 类的操作类的操作可

2、见性可见性操作名操作名(参数列表参数列表):返回值类型返回值类型特性特性+public#protected-privateRoseUML可见性可见性+display():Location+hide()#create()-attachXWindow(xwing:XwindowPtr)4面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.2 类之间的关系类之间的关系常见的类之间的关系包括常见的类之间的关系包括:关联、聚集、组合、泛化、关联、聚集、组合、泛化、依赖等依赖等.5面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.2.1 关联关联关联关联(association)是模

3、型元素间的一种语义联系是模型元素间的一种语义联系,它它是对具有共同的结构特性、行为特性、关系和语义的是对具有共同的结构特性、行为特性、关系和语义的链链(Link)的描述的描述./类类A的源码的源码public class A public B theB;public A()/类类B的源码的源码public class B public B()/类类A的源码的源码public class A public B theB;public A()/类类B的源码的源码public class B public A theA;public B()6面向对象分析与设计面向对象分析与设计&UML 重庆文理学院

4、5.2.1 关联关联1.关联名关联名用来描述关联的作用用来描述关联的作用.7面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.2.1 关联关联2.关联的角色关联的角色关联的两端可以以某种角色参与关联关联的两端可以以某种角色参与关联,如果不标注角如果不标注角色则隐含用类名作为角色名色则隐含用类名作为角色名.角色的多重性角色的多重性,表示可以有多少个对象参与该关联表示可以有多少个对象参与该关联.8面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.2.1 关联关联3.关联类关联类/Company.javapublic class Company private String

5、companyName;public Person employee;/Person.javapublic class Person private int personName;public Company employer;/Contract.javapublic class Contract private Double salary;9面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.2.1 关联关联4.关联的约束关联的约束10面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.2.1 关联关联5.限定关联限定关联限定符限定符,关联的属性关联的属性11面向对象分析

6、与设计面向对象分析与设计&UML 重庆文理学院5.2.1 关联关联6.关联的种类关联的种类(1)自反关联自反关联public class EnginePart public EnginePart theEnginePart;(2)二元关联二元关联(3)N元关联元关联12面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.2.2 聚集与组合聚集与组合聚集聚集(aggregation)是一种特殊的关联是一种特殊的关联,表示类之间的表示类之间的整体与部分关系整体与部分关系.public class Circle public int radius;Style style;public cl

7、ass Style Color color;boolean isFilled;13面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.2.2 聚集与组合聚集与组合组合组合(composition)是一种特殊的聚集是一种特殊的聚集,强调整体和部强调整体和部分具有相同的生命期分具有相同的生命期.public class Circle public int radius;Point center;public class Style int x,y;14面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.2.3 泛化关系泛化关系泛化关系指一般元素和特殊元素之间的分类关系泛化关系指

8、一般元素和特殊元素之间的分类关系.在在OOPL中称为继承中称为继承.15面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.2.3 泛化关系泛化关系操作操作类的包类的包继承继承抽象类抽象类package MyPackage;abstract class MyAbstractClass.package MyPackage;class MyDerivedClass extends MyAbstractClass int att;.void myFunction(ReferencedClass r).MyDerivedClassatt:intmyFunction()MyPackageMyA

9、bstractClass属性属性16面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.2.4 依赖关系依赖关系依赖关系也称使用关系依赖关系也称使用关系.l调用调用,一个类调用另一个类的方法一个类调用另一个类的方法l参数参数,一个类的方法使用另一个类作为形式参数一个类的方法使用另一个类作为形式参数l发送发送,消息的发送者与接收者之间的关系消息的发送者与接收者之间的关系l实例化实例化,一个类的方法创建了另一个的实例一个类的方法创建了另一个的实例17面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.2.4 依赖关系依赖关系class MyDependentClass .voi

10、d myFunction1(MyReferencedClass r).MyReferencedClass myFunction2().void myFunction3()MyReferencedClass m MyDependentClassatt:intmyFunction()MyReferencedClass依赖依赖(引用一个类引用一个类)参数参数or 返回类型返回类型or 局部变量局部变量18面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.3 派生属性和派生关联派生属性和派生关联派生属性(关联)指可以由其他属性()关联计算得到的属性,名字前加”/”.19面向对象分析与设计面

11、向对象分析与设计&UML 重庆文理学院5.4 抽象类和接口抽象类和接口抽象类抽象类接口接口20面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.4 抽象类和接口抽象类和接口interface MyAbstractClass.class MyClass implements MyInterface .UML 符号符号-接口的实现描述接口的实现描述21面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.5 版型版型版型版型(stereotype)是是UML的的3种扩展机制之一种扩展机制之一.版型是建模人员在已有的构造块上派生出新的构造块版型是建模人员在已有的构造块上派生出新的

12、构造块,这些新的构造块与特定问题相关这些新的构造块与特定问题相关.版型可以应用于所有类型的模型元素版型可以应用于所有类型的模型元素.系统预定义的版型系统预定义的版型用户自义的版型用户自义的版型22面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.6 边界类、控制类和实体类边界类、控制类和实体类UML中三种主要的类版型中三种主要的类版型l边界类边界类,boundary classl控制类控制类,control classl实体类实体类,entity class引入多种类版型帮助分析和设计人员确定系统中的类引入多种类版型帮助分析和设计人员确定系统中的类.23面向对象分析与设计面向对象分

13、析与设计&UML 重庆文理学院5.6.1 边界类边界类边界类位于系统与外界的交界处边界类位于系统与外界的交界处,包括包括:用户界面类用户界面类,如如:窗口、对话框、报表类等窗口、对话框、报表类等通讯协议类通讯协议类,如如:TCP/IP:TCP/IP的类的类直接与外部设备交互的类直接与外部设备交互的类直接与外部系统交互的类直接与外部系统交互的类边界类的边界类的UML表示方法表示方法:24面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.6.1 边界类边界类通过用例图可以确定需要的边界类通过用例图可以确定需要的边界类,每个每个Actor/User case对至少需要一个边界类对至少需要

14、一个边界类.但并不是每个但并不是每个Actor/Use case都需都需要生成惟一边界类要生成惟一边界类,多多个个actor启动同一启动同一use case可以使用同一边可以使用同一边界类界类.25面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.6.2 实体类实体类实体类保存要放进持久存储体实体类保存要放进持久存储体(数据库数据库/文件等文件等)的信息的信息.实体类通过事件流和交互图发现实体类通过事件流和交互图发现,采用目标领域术语命名采用目标领域术语命名.通常实体类对应数据库中的表通常实体类对应数据库中的表,其属性对应表的字段其属性对应表的字段,但但实体类与数据库中的表不一定是

15、一一对应关系实体类与数据库中的表不一定是一一对应关系.26面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.6.3 控制类控制类控制类是负责管理或控制其他类工作的类控制类是负责管理或控制其他类工作的类.每个用例通常有一个控制类每个用例通常有一个控制类,控制用例中的事件顺序控制用例中的事件顺序,控制类也可以在多个用例间共用控制类也可以在多个用例间共用.控制较少接收消息控制较少接收消息,发出较多消息发出较多消息.27面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.7 类图类图类加上它们之间的关系就构成类图类加上它们之间的关系就构成类图,其中包含接口、其中包含接口、包、关系

16、等元素包、关系等元素,同时也可以包含对象、链等实例同时也可以包含对象、链等实例.类图描述类和类之间的静态关系类图描述类和类之间的静态关系.28面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.7.1 类图的抽象层次类图的抽象层次概念层类图概念层类图,描述应用领域的概念描述应用领域的概念.说明层类图说明层类图,描述软件的接口部分描述软件的接口部分,不不是实现部分是实现部分.实现层类图考虑实现问题实现层类图考虑实现问题,提供类的细节提供类的细节.29面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.7.2 构造类图构造类图根据用例描述中的名词确定候选类根据用例描述中的名词确

17、定候选类.使用使用CRC分析法寻找类分析法寻找类,CRC指指:类类(class)、职责、职责(responsibility)、协作、协作(collaboration).根据边界类、控制类和实体类的划分来帮助发现类根据边界类、控制类和实体类的划分来帮助发现类.参考设计模式来确定类参考设计模式来确定类.根据软件开发过程的指导寻找类根据软件开发过程的指导寻找类,如如:UP,XP等等.寻找类的方法寻找类的方法构造类图时注意构造类图时注意不要试图使用所有的符号不要试图使用所有的符号.不要过早陷入细节不要过早陷入细节,根据阶段、层次逐步细化根据阶段、层次逐步细化.构造完成要将模型与目标问题对照验证其是否合

18、理构造完成要将模型与目标问题对照验证其是否合理.30面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.7.2 构造类图构造类图1.研究分析问题领域研究分析问题领域,确定系统需求确定系统需求.2.确定类确定类,明确类的含义和职责明确类的含义和职责,确定属性和操作确定属性和操作.3.确定类之间的关系确定类之间的关系.4.调整和细化类及类之间的关系调整和细化类及类之间的关系.5.绘制类图并增加相应的说明绘制类图并增加相应的说明.建立类图的步骤建立类图的步骤31面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.8 领域分析领域分析l建立类图的过程就是对领域及其解决方案的分析与建

19、立类图的过程就是对领域及其解决方案的分析与设计过程设计过程.l领域分析包括领域分析包括:通过对某一领域中的已有应用系统、理论、技术、开发历通过对某一领域中的已有应用系统、理论、技术、开发历史等的研究史等的研究,来标识、收集、组织、分析和表示领域模型及来标识、收集、组织、分析和表示领域模型及软件体系结构的过程软件体系结构的过程;根据这一过程得到的结果根据这一过程得到的结果.32面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.9 OO设计的原则设计的原则l开闭原则开闭原则(Open/Closed Principle,OCP)lLiskov替换原则替换原则(Liskov Substit

20、ution Principle,LSP)l依赖倒置原则依赖倒置原则(Dependency Inversion Principle,DSP)l接口分离原则接口分离原则(Interface Segregation Principle,ISP)33面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.9.1 开闭原则开闭原则开闭原则指的是一个模块在扩展性方面应该是开放的开闭原则指的是一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的而在更改性方面应该是封闭的.其目的是在写模块时其目的是在写模块时,应该尽量使得模块可以扩展应该尽量使得模块可以扩展,并并且在扩展时不需要对模块的源代码进

21、行修改且在扩展时不需要对模块的源代码进行修改.为达到开闭原则为达到开闭原则,设计时就尽量使用接口进行封闭设计时就尽量使用接口进行封闭,采用抽象机制采用抽象机制,并利用并利用OO中的多态性技术中的多态性技术.34面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.9.1 开闭原则开闭原则例例:某输出类某输出类Output中包含一个中包含一个output方法方法,该方法可能使用多该方法可能使用多种不同的打印机种不同的打印机,如如:HP、EPSON、Canon,每种打印机都有不,每种打印机都有不同的同的print方法。方法。设计方案设计方案1 1void output(int printT

22、ype)if(printType=1)Hp prt=new Hp();prt.print(args);else if(printType=2)Epson prt=new Epson();prt.print(args);else 35面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.9.1 开闭原则开闭原则设计方案设计方案2 2void output(Printer printer)printer.print(args);如何增加打印机类型如何增加打印机类型?36面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.9.2 Liskov替换原则替换原则定义定义:如果对每一个类

23、型为如果对每一个类型为T1的对象的对象o1,都有类型为都有类型为T2的对象的对象o2,使得以使得以T1定义的所有程序定义的所有程序P,在所有对象在所有对象o1被被代换成代换成o2时时,程序程序P的行为没有变化的行为没有变化,那么类型那么类型T2是类是类型型T1的子类型的子类型.Java等语言中是否允许左图中的继承等语言中是否允许左图中的继承,即子类使用较低访问权限覆盖父类的即子类使用较低访问权限覆盖父类的方法呢方法呢?不允许不允许,这样违背了这样违背了Liskov替换原则替换原则.37面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.9.3 依赖倒置原则依赖倒置原则定义定义1:抽象

24、不应该依赖于细节抽象不应该依赖于细节,细节应该依赖于抽象细节应该依赖于抽象.定义定义2:要针对接口编程要针对接口编程,不要针对实现编程不要针对实现编程.设计人员希望遵守设计人员希望遵守”开开-闭闭”原则原则,倒置依赖关系是达到要求的倒置依赖关系是达到要求的途径途径.38面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.9.4 接口分离原则接口分离原则使用多个专门的接口比使用单一的总接口要好使用多个专门的接口比使用单一的总接口要好.39面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.9.4 接口分离原则接口分离原则一个真实的例子一个真实的例子:某全文查找引擎的系统设计某

25、全文查找引擎的系统设计.违反接口分离原则违反接口分离原则40面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.9.4 接口分离原则接口分离原则l探索器接口探索器接口l索引生成器接口索引生成器接口l搜索结果集接口搜索结果集接口功能接口的划分:功能接口的划分:41面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.9.6 设计过程中注意的问题设计过程中注意的问题l遵守遵守OO设计原则设计原则.l不同类中相似方法的名称应该相同不同类中相似方法的名称应该相同.l遵守已有的约定俗成的习惯遵守已有的约定俗成的习惯.l尽量减少消息模式的数目尽量减少消息模式的数目.只要可能只要可能,使消

26、息具有一致使消息具有一致的模式的模式,以利于理解以利于理解.l设计简单的类设计简单的类.类的职责要明确类的职责要明确,不要在类中提供太不要在类中提供太多的服务多的服务,应该从类名可以比较容易推断出用途应该从类名可以比较容易推断出用途.l泛化结构的深度要适当泛化结构的深度要适当.l定义简单的方法定义简单的方法.一个方法内不要包含过多的功能一个方法内不要包含过多的功能.42面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.9.6 设计过程中注意的问题设计过程中注意的问题好的设计的变动轨迹好的设计的变动轨迹:43面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.10 对象图对

27、象图对象图表示地组对象及它们之间的关系对象图表示地组对象及它们之间的关系.是系统详细是系统详细状态在某一时刻的快照状态在某一时刻的快照,表示复杂的类图的一个实例表示复杂的类图的一个实例.对象图的建模元素对象图的建模元素:对象和链对象和链对象图在对象图在UML建模中使用有限建模中使用有限,用于表达数据结构的用于表达数据结构的示例示例,了解系统在某个特定时刻的具体情况了解系统在某个特定时刻的具体情况.44面向对象分析与设计面向对象分析与设计&UML 重庆文理学院5.10 对象图对象图类图类图对象图对象图45面向对象分析与设计面向对象分析与设计&UML 重庆文理学院作业作业l建立建立”笔记本维修系统笔记本维修系统”的类模型的类模型46面向对象分析与设计面向对象分析与设计&UML

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁