类图
基本属性

+:public
#:protected
-:private
~:default,即包权限
下划线:static,如上图的sex属性和playGames()方法
斜体:抽象
类与类之间关系
继承
类与类之间的继承,接口与接口之间的继承,对应的是extend关键字。
表示方法: 空心三角形 + 实线
实现(Realization)
对应implement关键字。
表示方法:
(1)矩形表示法
空心三角形 + 虚线
(2)棒棒糖表示法
实线
关联(Association)
单向关联
一个类持有另一个类的类型的成员变量。
表示方法:带箭头的实线。
双向关联
双方各自持有对方类型的成员变量。
表示方法:不带箭头的实线。
自关联
Node类包含类型为Node的成员变量,也就是“自己包含自己”。
表示方法:带箭头的实线
聚合(Aggregation)
弱的‘拥有’关系,即has-a的关系。强调是“整体”包含“部分”,但是“部分”可以脱离“整体”而单独存在。两个对象具有各自的生命周期。
表示方法:空心菱形+直线+箭头
每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。当大雁死去后大雁群并不会消失,两个对象生命周期不同。
组合(Composition)
强的‘拥有’关系,是一种contains-a的关系。组合关系与聚合关系见得最大不同在于:这里的“部分”脱离了“整体”便不复存在。部分和整体的生命周期一样。
表示方法:实心菱形+直线+箭头。
鸟和翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。
依赖(Dependency)
当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
表示方法:虚线箭头
Driver的drive方法只有传入了一个Car对象才能发挥作用,因此我们说Driver类依赖于Car类。
