类的组成:名称+属性+操作(方法)
类的名称必须是名词,不需要前缀或后缀,可以多个名称组合,单词首字母大写。正体字表示类可实例化,斜体字说明类为抽象类
类的属性(Attributes):
可见性:public、protected、private、Implementation(default)
属性类型与初始值
类的操作(Operations):
可见性:public、protected、private、Implementation
参数
返回类型
抽象类(双击类)——名称斜体
类图——接口
接口中包含方法, 但不包含属性. 在 UML 中接口用一个带有名称的圆圈表示, 通过一条三角箭头的虚线连接具体的接口与实现类,箭头指向接口
有时候接口也使用普通类的符号表示(在这种情况下三角箭头的虚线才能正常显示):
类之间的关系
泛化(Generalization)
在Java中此类关系通过关键字extends明确标识,依赖的特例
实现(Realization)
在Java中此类关系通过关键字implements明确标识,依赖的特例
关联(Association)
聚合(Aggregation):聚合关系描述的是部分与整体关系的关联,描述了“has
a”的关系,汽车整车与发动机、座椅的关系
组合(Composition):组合关系是一种更强形式的关联,整合控制成员的生命周期,如公司与部门的关系
依赖(Dependency)
在java
中. 依赖关系体现为: 局部变量, 方法中的参数, 和对静态方法的调用.
类之间的关系——泛化
泛化定义了一般元素和特殊元素之间的分类关系,如果从面向对象程序设计语言的角度来说,类与类之间的泛化关系就是平常所说的类之间的继承关系。如人与男人和女人的关系
。
使用空心箭头标示泛化,箭头指向基类。
类之间的关系——实现
实现是一种类与接口的关系, 表示类是接口所有特征和行为的实现
实现用带三角箭头的虚线表示,箭头指向接口
类之间的关系——关联
关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法
,关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。在 Java 中,关联关系是通过使用成员变量来实现的。
如人与身份证
单向关联
双向关联
自关联
类之间的关系——聚合
聚合关系是关联关系的一种,是更强的关联关系。
聚合是整体和部分之间的关系,例如汽车由引擎、轮胎以及其它零件组成。
聚合关系也是通过成员变量来实现的。但是,关联关系所涉及的两个类处在同一个层次上,而聚合关系中,两个类处于不同的层次上,一个代表整体,一个代表部分。
类之间的关系——组合
UML类图关系中合成关系是关联关系的一种,是比聚合关系还要强的关系。
代表整体的对象负责代表部分对象的生命周期。
类之间的关联——多重性
关联关系的多重性,在UML中,多重性可以用下面的格式表示:
0..1
0..*(也可以表示为0..n)
1(1..1的简写)
1..*(也可以表示为1..n)
*(即0..n)
7
3,6..9
0(0..0的简写)(表示没有实例参与关联,一般不用)
可以看到,多重性是用非负整数的一个子集来表示的。