面向对象中类与类之间的关系

类与类之间的关系

关联关系

​ 表示一个类与另外一个类有联系,通常在 表现为一个类对象作为另一个类的属性

​ 类图中表示关联关系时可以在关联关系线上标注角色名,一般使用一个表示两个之间的关系的动词或则名称表示角色名(有时候名称为实例对象名),关系的两端代表不同的角色名,可以在两端写名,也可以不写。

  1. 双向关联

  2. 单向关联

  3. 自关联

  4. 多重性关联

表示方式 多重性说明
1..1 表示另一个类的一个对象只与该类的一个对象具有关系
0..* 表示另一个类的一个对象与零个或者多个该类对象具有关系
1..* 表示另一个类的一个对象与该类的一个或者多个对象具有关系
0..1 表示另一个类的一个对象没有或者只是与一个该类对象具有关系
m..n 表示另一个类的一个对象与最少m、最多n个该类对象有关系(m<=n)

(1). 聚合关系
整体与部分的关系,通常在定义一个整体类后,再去分析整体类的组成结构,找出成员类,使之形成聚合关系。(成员对象是整体类的一部分,但是可以脱离整体对象独立存在)

(2).组合关系
整体与部分的关系,组合关系中部分和整体具有统一的声明周期,一旦整体不存在,部分对象也将不存在。

示例图片:
10

依赖关系

​ 是一种使用关系,特定事物的改变可能会影响到使用该事物的其它事物。大多数情况下,表现为在某一个类的方法中使用另外一个类的对象作为参数 。如果在一个类的方法中调用了另外一个类中的静态方法或者一个类方法中定义了另外一个类的对象作为其局部变量也是依赖关系的一种体现。(UML中由依赖的一方指向被依赖的一方)

示例图片:
11

泛化关系

泛化关系也就是继承关系,称为“is a kind of” 关系,描述父类与子类的关系,父类称之为超类(基类),子类称为派生类。(UML中使用空心三角的直线表示)

示例图片:
12

实现关系

接口之间可以有与类之间关系类似的继承和依赖关系,但是还有实现关系,这种关系,类实现了接口,类中的操作实现了接口中的所声明的操作。(UML中使用空心三角虚线表示)

示例图片:
13