0.)
继承、实现是三角型箭头,其他都为箭头
组合、聚合都有一个菱形端,且都为实线,其他都无菱形端
组合的菱形为实心,聚合的菱形为空心
继承是实线,实现是虚线
关联是实线 依赖是虚线
1.)类成员属性与类函数访问修饰在UML是符号表示方法如下:
'+' :表示访问修饰符-public
'#' :表示访问修饰符-protected
'-' :表示访问修饰符-private
2.)类的成员属性表示方式
3.)类函数表示方式
4.)类与类之间关系表示方式
4.1)单向关联
我们可以看到,在UML类图中单向关联用一个带箭头的直线表示。上图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量来实现。
4.2)双向关联
从上图中我们很容易看出,所谓的双向关联就是双方各自持有对方类型的成员变量。在UML类图中,双向关联用一个不带箭头的直线来表示。上图中在Customer类中维护一个Product[]数组表示一个顾客购买了哪些产品;在Product类中维护一个Customer类型的成员变量表示这个产品被那个顾客所购买。
4.4)自关联
自关联在UML类图中用一个带有箭头且指向自身的直线表示。上图的意思就是Node类包含类型为Node的成员变量,也就是“自己包含自己”。
4.5.)聚合关系(Aggregation)
表示的是整体和部分的关系,且 整体与局部可以分开,表示 has-a 的关系。在UML中,聚合关系用带空心菱形的直线表示:
4.6)组合关系(Composition)
组合关系与聚合关系间的最大不同在于:这里的“部分”脱离了“整体”便不复存在,表示 contains-a 的关系。
显然,嘴是头的一部分且不能脱离了头而单独存在。
在UML中,组合关系用带实心菱形的直线表示。
4.7.)依赖关系
从上图中我们可以看到,Driver的drive方法只有传入了一个Car对象才能发挥作用,因此我们说Driver类依赖于Car类。在UML类图中,依赖关系用一条带有箭头的虚线表示。
4.8.)继承关系
泛化关系在Java中也叫作继承关系,在UML中我们用带空心三角形的直线来表示,继承关系对应的是extend关键字,在UML类图中用带空心三角形的直线表示,如下图所示中,Student类与Teacher类继承了Person类。
4.9.)接口实现关系
这种关系对应implements关键字,比如下图中,Car类与Ship类都实现了Vehicle接口。