欢迎来到天天文库
浏览记录
ID:18716017
大小:127.00 KB
页数:8页
时间:2018-09-21
《统一建模语言uml基础专题之类图和对象图》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、统一建模语言UML基础专题之类图和对象图类图表示不同的实体(人、事物和数据)如何彼此相关,显示了系统的静态结构。类图可用于表示逻辑类,逻辑类通常就是业务人员所谈及的事物种类,比如摇滚乐队、CD、广播剧,或者贷款、住房抵押、汽车信贷及利率的抽象描述。类图还可用于表示实现类,实现类就是程序员要编写的类。实现类图与逻辑类图可能会用来描述一些相同的类。然而,实现类图与逻辑类图不会使用相同的描述属性。 类图是一个分为三个部分的矩形。最上面的部分显示类的名称,中间部分显示类的属性,最下面的部分显示类的操作(或者说“方法”)。实际上,最常用、最简单的类图就
2、是一个在里面显示了类名的长方形,因为在UML中,大多数类只要有一个能够清楚表达的命名就可以了。 在类名部分还可以显示类的构造类型。类的构造型显示在一对双角括符号“«»”之间,经常放在类的名称上面。常见的构造类型包括实现类(直接显示类名)、接口(在类名上面显示«interface»),以及工具类(在类名上面显示«utility»)。如果类名用斜体表示,或者在类名下面标上{abstract},就表示这个类是一个抽象类。 在属性和方法的前面有一个字符用来表示属性或方法的作用域,它们的意义如下: —“-”表示属性或方法是私有的(private);
3、 —“#”表示属性或方法是保护的(protected); —“+”表示属性或方法是公用的(public)。 紧接在属性或方法的参数名称的冒号(:)号之后,显示了属性的类型或方法的参数的类型。方法的返回值类型显示在方法后面的冒号之后。 下图显示了一个类Person的类图,它对应的类的C#源代码如下: Person +name:string +sex:char -age:int +Work(intype:string):void +Person(inname:string,insex:char,inage:int):void
4、+Speak():void +Eat():void 类图示意 类图示意 classPerson { publicstringname; publiccharsex; privateintage; publicPerson(stringname,charsex,intage) { } publicvoidEat() { } publicvoidSpeak() { } publicvoidWork(stringtype) { } } 对象图用来表示类的实例化对象。对象图用一个两层的矩形来表示,上层标识对象
5、名和类名,下层标识对象的实例化属性值。下面的代码将创建一个Person类的对象mary: Personmary=newPerson("Mary",'F',24); 对象mary的对象图如图所示: mary:Person name:string="Mary" sex:char='F' age:int=24 对象图示例 在一个系统中,类之间存在多种关系,如下所示。 —继承(inheritance):继承是指一个类从其父类派生而来,继承了父类的属性和方法。基于类的继承叫做一般化(generalization),基于接口的继承,叫做实
6、现(realization)。 —关联(association):类之间的关联大多用来表示变量实例持有对其他对象的引用,这种关系是半永久的,但没有包含关系。 —依赖(dependency):依赖是不同类的实例之间的暂时关系。 —聚合(aggregation):聚合是关联的一种特殊形式,它意味着一种整体/部分(whole/part)的关系,但是部分也可以作为其他整体的组分,而且部分和整体之间也没有生命期的依赖。 —组合(composition):组合是聚合的一种特殊形式,组合的关联性比聚合更强,部分只能作为唯一的一个整体的部分,而且部分的
7、生命周期依赖于整体的生命周期。 UML类图对这些关系的表示方法如图6-5所示。具有关联、聚合和组合关系的两个对象之间可能是没有数量关系的一种联系,也可能存在数量关系,比如1对1(不标识)、0个或1个(标识为0…1)、0个或多个(标识为0…*或0…n)、1个或多个(标识为1…*或1…n)或者确切的数字(直接标识数字)。 图6-6显示了一个包含了图6-2中的对象的类图。其中包括一个继承关系和两个关联关系。CDSalesReport类继承自Report类。一个CDSalesReport类与一个CD类关联,但是CD类并不知道关于CDSalesRep
8、ort类的任何信息。CD类和Band类都彼此知道对方,两个类彼此都可以与一个或者多个对方类相关联。 UML类图之间的关系表示方法 包含关系的类图
此文档下载收益归作者所有