目录
一、概念
推荐一个画UML相关图的软件:ProcessOn
二、快速介绍类图
1、普通类的类图
2、抽象类的类图
3、接口的类图
三、类与类之间的关系
(一)、关联关系
1、单向关联
2、双向关联
3、自关联
(二)、聚合关系(强关联)
1、一对多:学校和学生
2、一对一:汽车和某个零件
(三)、组合关系(强聚合)
(四)、依赖关系
(五)、继承关系(也叫泛化关系)
(六)、实现关系
一、概念
类图显示了模型中存在的类的内部结构以及它们与其他类的关系。
类图是面向对象建模的主要组成部分,简化人们对系统的理解。
类图是系统分析和设计阶段的重要产物。
推荐一个画UML相关图的网站:ProcessOn
二、快速介绍类图
1、普通类的类图
在UML类图中。类使用包含类名、属性(成员变量)、方法且带有分割线的矩形来表式,如下图:表示名字为MyClass的,包含ID、name、age这3个属性,myName、myID、myAge这三个方法。
其中 :
" : "后面是属性的类型或方法的返回类型。
方法名后面()里面是参数列表。
访问权限:
+:表示public
-:表示private
#:表示protect
2、抽象类的类图
与普通类不同的是,抽象类的类名和方法都用斜体表示:
有时为了更加容易区分,我们可以将实线方框换做虚线方框。
3、接口的类图
接口类图与上述区别:接口名和属性用斜体表示,因为接口主要是抽象方法,所以可以不写属性一栏,即方框里面只写两行内容。
三、类与类之间的关系
(一)、关联关系
关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生、学生和课程等。关联关系是类与类之间最常用的一种关系,一般引用的对象,会作为另外一个类的成员变量来使用。关联关系分为一般关联关系、聚合关系和组合关系。一般关联又可以分为单向关联,双向关联,自关联。
1、单向关联
即一个类的对象作为另一个类的成员(部分和整体),那么两个类就具有单向关联的关系。用一个带箭头的实线表示。由整体指向部分,这里学校就是一个整体
2、双向关联
即两个类的对象互相作为对方的成员变量,用一条不带箭头的实现表示。
3、自关联
即自己作为自己的成员(如链表就有类似的实现),用一个带有箭头的线且指向自己表示
(二)、聚合关系(强关联)
1、一对多:学校和学生
聚合关系是关联关系的一种, 是强关联关系,是整体和部分之间的关系。聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。用一条线一头是个空心菱形表示,一指向多,例如,一个学校可以有多个学生,所以是学生指向箭头。
2、一对一:汽车和某个零件
与一对多区别是:整体和部分变成一对一,如果汽车只包含某一个零件,此时汽车和该零件就是一种一对一聚合关系。用的线和一对多一样,是从部分指向整体(零件指向汽车)
注意:这里也可以画成单向关联关系,因为聚合关系本身就是一种关联关系,但是当关联属性较强时,就用聚合更合适。
(三)、组合关系(强聚合)
组合:表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系。在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。例如,订单表与订单项的关系,如果订单表不存在,订单项也不存在了。
UML类图中,组合关系用带实心萎形的实线来表示,菱形指向整体。
(四)、依赖关系
依赖关系:是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。在代码中,某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。在UML类图中,依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。
如下,人画正方形:正方形类对象作为人类中方法的参数。
(五)、继承关系(也叫泛化关系)
继承关系:是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系。在UML类图中,泛化关系用带空心三角箭头的实线来表示,箭头从子类指向父类。例如,Student 类和Teacher类都是Person类的子类,其类图如下图所示:
(六)、实现关系
实现关系:是接口与实现类之间的关系。在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有的抽象操作。在UML类图中,实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口(继承是实线空心三角箭头,实现是虚线空心带三角箭头)。例如,鼠标和键盘实现了USB接口,如图所示: