1. 类的UML图
| People / People |
|---|
| +name:String #age:int -money:double |
| +setName(String):void #printMess():void +getAge(int):void -getMoney(); |
- 第一层是名字层,常规字形——具体类;斜体字形——抽象类;
- 第二层是变量层(属性层),列出成员变量及类型,格式是“变量名字:类型”
访问权限:
"+"表示public;"#"表示protected;"-"表示private;没有修饰符表示friendly - 第三层是方法层(操作层),列出类的方法及返回类型,格式是“方法名字(参数列表):类型”
访问权限:
"+"表示public;"#"表示protected;"-"表示private;没有修饰符表示friendly
如果是静态方法,在方法的名字下面添加下划线。
2. 接口的UML图
| 《interface》 Computable |
|---|
| +MAX:int |
| +add(int,int):int |
| +sub(int,int):int |
- 第一层是名字层,接口名必须斜体字形,需要用《interface》修饰,修饰与名字分两行
- 第二层是常量层,格式是“常量名字:类型”。接口常量访问权限都是public,所以加“+”
- 第三层是方法层,格式是“方法名字(参数列表):类型”,方法访问权限都是public,所以加“+”
3. 泛化关系Generalization
即继承关系
用实线连接父子,空心三角形指向父类

泛化.jpg
4. 关联关系Association
如果A类成员变量是用B类(接口)来声明的,那么称A关联于B。实心三角形指向B类
双向的关联可以有两个箭头或者不带箭头的实线,单向关联是一个箭头的实线。

关联.jpg
其他的关联关系
1. 聚合关系Aggregation
是强的关联关系。聚合是整体与部分之间的关系,并且部分可以脱离整体单独存在,这种关系不属于继承。

聚合.png
空心菱形实线,箭头指向部分,菱形指向整体
2. 组合关系Composition
是比聚合关系还要强的关系。组合是整体与部分的关系,但部分不能离开整体而单独存在,整体的对象负责代表部分的对象的生命周期。

组合.png
实心菱形实线,箭头指向部分,菱形指向整体
5. 依赖关系Dependency
A类某个方法的参数是用B类(接口)来声明的变量 或 某个方法的返回类型是B类型,称A依赖于B。
虚线连接,箭头指向B类

依赖.png
注意:习惯将A关联于B称为A依赖于B,当需要强调A是通过方法参数依赖于B,UML图中用虚线连接
6. 实现关系Realization
如果一个类实现了一个接口,类与接口就是实现关系
用虚线带空心三角形指向接口

实现.png
7. 注释
注释就是对类图的补充说明,可以附加在任何元素上,用右上角有折角的矩形来表示,其内放置说明文字,通过虚线连接被注释的元素。
注释.png

各个关系的连接方式.png