类图
类图是面向对象系统中最常用的图,是定义其它图的基础
类图主要是用来显示系统中的类,接口以及它们之间的关系
类图包含的主要元素有类,接口和关系,其中关系有泛化关系、关联关系、依赖关系和实现关系
在类图中也可以包含注释和约束
类的表示方法
类是类图的主要组件,由三个部分组成:类名、属性和方法
在UML中,类用矩形来表示,顶端部分存放类的名称,中间部分存放类的属性,属性的类型和值,底部部分存放类的方法,方法的参数和返回类型
在UML中可以根据实际情况有选择的隐藏属性部分或方法部分或两者都隐藏
-
最上层:类名
-
中间层:属性
-
最下层:方法
注意:属性和方法前面的符号代表访问权限(’+’:public、’-’:private、’#’:protected)
类之间的关系
泛化关系
泛化关系用来表示类与类或者接口与接口之间的继承关系,也被称为“is a kind of”关系
泛化关系用一条实现空心箭头由子类指向父类
实现关系
实现关系用来表示类与接口之间的实现关系
实现关系用一条虚线空心箭头由子类指向父类
类图实例如下:
依赖关系
对于两个独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间体现为依赖关系
例如:电池和充电器,充电器为电池充电;机器生产零件等
如果电池需要充电,必须依赖充电器
关联关系
对于两个独立的系统,当一个系统的实例与另一个系统的一些特定实例存在固定的对应关系时,这两个系统之间的关系为关联关系
角色
和其它关系不同的是,当一个类处于关联的某一端时,该类就在这个关系中扮演一个特定的角色,角色就是关联关系中一个类对另一个类所表现的职责
多重性
关联关系也不全是一对一的,也包括一对多的;例如:一个人只能有一个身份证号,但是一个人却可以拥有多个电话号
关联-聚合关系
-
聚合关系是关联关系的一种,是更强的关联关系
-
聚合是整体和部分之间的关系,例如汽车和引擎
-
聚合关系是通过成员变量来实现的,但是关联关系所涉及到的两个类处在同一个层次上,而在聚合关系中,两个类处于不同的层次,一个代表整体,另一个代表部分
关联-组合关系
-
组合关系也是关联关系的一种,是比聚合关系还要强的关系
-
整体要负责部分的声明周期,即整体消失,部分也不复存在