面向对象设计的基础就是使用类。类是用来代表现实事务或者功能的构造块。
类图是由若干类关联在一起,反映系统或者子系统组成结构的静态图。类图的建模贯穿工程的分析和设计阶段的始终,通常从商务伙伴能够理解的类开始建模,最终往往成为只有开发小组才能够完全理解的类。
一、类图的组成
类图由如下元素组成:
类(Class):是具有共同结构特征、行为特征、联系和语义的对象集合的抽象形式。
关联(Association):它表示类与类之间的关系。
二、UML类图中的符号
(一)类
类(Class)在UML中通常以实线矩形框表示,矩形框中含有若干分隔框,分别包含类的名字、属性、操作、约束以及其他成分等
在类图中,根据建模的不同景象,类图标中不一定列出全部的内容。如在建立分析模型或设计模型时,甚至可以只列出类名,在图中着重表达的是类与类之间的联系;在建立实现
模型时,则应当在类图标中详细给出类的属性和方法等细节。
1. 属性
属性(Attribute)在UML类图标的矩形框中用文字串说明
可视性(Visibility)标记表示:
+ 公共
#保护
- 私用
可视性可以用以下关键字表示:public(公共)、 private(私用)、protected(保护)。
若标记为“+”或“public”,则为公共属性,可以被外部对象访问。
若标记为“#’或“ protected”,则为保护属性,可以被本类或子类的对象访问。
若标记为“-”或“ private”,则为私用属性,不可以被外部对象访问,只能为本类的对象使用。
可视性可以缺省,表示该属性不可视。
属性类型表示:
冒号“:”后跟属性值的数据类型。数据类型的表示依赖于实现语言,如有的程序设计语言规定浮点数用保留字“ Float”表示,有的则规定用保留字“ Real”表示。
属性初始值设置:
可以通过在属性名称和数据类型之后添加等于号(=)来为属性指定默认值
属性多重性:
多重性为可选项,它表达该类的每个实例的属性值的个数。可以像应用于类之间的关系中那样把多重性应用于属性。例如,Student类具有属性Grades。不希望该属性只包含单个值,而是希望它包含该学生的所有成绩,可以是任意多个。
2. 操作(方法)
操作(Operation)表示类能够提供的功能服务。它在UML类矩形框中用文字串说明
操作名指示类可提供的功能服务,它后跟圆括号中的参数列表是可选项,即一个操作可以有参数,也可以没有参数。参数列表由逗号分隔的操作的形式参数组成,其格式为:
参数名:类型=缺省值,…
返回列表是返回给调用者的单个变量值,它可以表示该操作程序运行的一个成功标志或者计算的值。
多重性:
多重性(mutiplicity)用来指示一个类的多少对象与另一个类的一个对象相关。可以在类关系的任何一端添加多重性,来指示出多重性
多重性是一个数值或者数值范围,用来指示一个类的几个对象与另一个类的一个对象相关。
示例: