UML类图中最常用到的元素有:类、属性、方法和关联关系。

- 类的属性表示方式:在UML类图中,类使用包含类名、属性(field)和方法(method)且带有分割线的矩形来表示。属性/方法名称前加的加号和减号表示这个属性或方法的可见性,UML类图中表示可见性的符号有三种:+ :表示public,- :表示private,#:表示protected(friendly也归入这类)。

- 类的方法表示方式:在UML类图中,方法使用小写字母加上一对圆括号来表示。圆括号中的内容是参数列表,返回类型紧跟在参数列表后面且用冒号隔开。

- 类与类之间关系的表示方式:包括单向关联、双向关联和自关联。单向关联用一个带箭头的直线表示;双向关联用一个不带箭头的直线表示;自关联指同一实体内部的两个实例之间的联系。

在UML类图中,自关联用带有箭头且指向自身的直线表示。例如,上图中的Node类包含一个类型为Node的成员变量,也就是“自己包含自己”。

聚合关系指的是整体包含部分,但是部分可以脱离整体而单独存在。如上图所示,Car类和Engine类之间存在聚合关系(Car类中包含一个Engine类型的成员变量)。在UML类图中,聚合关系用带空心菱形和箭头的直线表示。

组合关系与聚合关系的最大不同在于部分不能脱离整体而单独存在。例如,下图所示,嘴是头的一部分且不能脱离头而单独存在。在UML类图中,组合关系用一个带实心菱形和箭头的直线表示。

依赖关系表示一个类对另一个类的依赖程度。例如,从上图可以看出,Driver的drive方法只有传入一个Car对象才能发挥作用,因此我们说Driver类依赖于Car类。在UML类图中,依赖关系用一条带有箭头的虚线表示。

继承关系对应的是extend关键字,在UML类图中用带空心三角形的直线表示。如下图所示,Student类与Teacher类继承了Person类。

接口实现关系对应implement关键字,在UML类图中用带空心三角形的虚线表示。如下图所示,Car类与Ship类都实现了Vehicle接口。

综上所述,我们已经完成了UML类图中最常见的表示方式的介绍。有了这些知识,我们就能够读懂常见的UML类图了。当遇到其他情况时,可以再进行查询。

参考资料:http://www.uml.org.cn/oobject/201211231.asp