类图

类图

  • 类图(Class Diagram)
    • 类一般由三部分组成:
    • 接下来我们看一下类的关系:
    • 关联关系(Association):
    • 聚合关系(Aggregation):
    • 组合关系(Composition):
    • 依赖关系(Dependency):
    • 泛化关系(Generalization):
    • 实现关系(Realization):

类图(Class Diagram)

类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。

类一般由三部分组成:

类名(Class):每个类都必须有一个名字,类名是一个字符串。
属性(Attributes):属性是指类的性质,即类的成员变量。类可以有任意多个属性,也可以没有属性。
操作(Operations):操作是类的任意一个实例对象都可以使用的行为,操作是类的成员方法。

可见性 符号 当前类 当前包 子孙类 其他包
public +
protected # ×
default × ×
private - × × ×

接下来我们看一下类的关系:

关系 说明 符号
关联 联系关系,是类与类之间的联结,使一个类知道另一个类的属性和方法,适用于成员变量 在这里插入图片描述
聚合 整体和部分关系,整体指向部分,部分可以离开整体而单独存在,适用于成员变量 在这里插入图片描述
组合 整体和部分关系,整体指向部分,部分与整体不可分离,适用于成员变量 在这里插入图片描述
依赖 使用关系,使用类指向被使用类,适用于局部变量或方法的调用 在这里插入图片描述
泛化 继承关系,子类指向父类 在这里插入图片描述
实现 接口的实现关系,实现类指向接口类 在这里插入图片描述

关联关系(Association):

通常关联关系用来实现连接有关联的对象所对应的类,即将一个类的对象作为另一个类的属性。
关联关系可以是单向的也可以是双向的。双向的符号是没有方向标的,只是一条直线。
例:
单向关联:
在这里插入图片描述
双向关联:
在这里插入图片描述
多重性关联关系:

表示方法 多重性说明
1…1 表示另一个类的一个对象只与一个该类对象有关系
0…* 表示另一个类的一个对象与零个或多个该类对象有关系
1…* 表示另一个类的一个对象与一个或多个该类对象有关系
0…1 表示另一个类的一个对象没有或只与一个该类对象有关系
m…n 表示另一个类的一个对象与最少m、最多n个该类对象有关系

例:
在这里插入图片描述
注意,不要认为一个Form是对应一个Button的,而是一个Button是对应一个Form的。

聚合关系(Aggregation):

表示整体与部分的关系。考虑到一个整体类的组成结构。找出成员类。即成员对象是整体对象的一部分,但是成员对象可以队里整体对象独立存在。所以也有人说此关系是一种弱关系,那么强关系就是后面组成关系。
聚合关系有一个特点,那就是可替换。
在这里插入图片描述
直观的来看此图Car中必须得有一个Engine,这样才可以认为是一个完整体,但是这个Engine是可替换的。

组合关系(Composition):

表示整体与部分的关系。但是与聚合不同此关系是整体与部分是同生共死关系。即如果整体对象销毁了部分也会被销毁。
在这里插入图片描述
上图Head是整体Mouth是部分,如果Head没了Mouth也跟着销毁了。如果Mouth没了Head也将是面目全非。
可以说他们是一样的都可以说是关联关系,是的,但是关联关系的强弱来区分了一下关联关系强度来看组合>聚合>关联。

依赖关系(Dependency):

是一个使用关系。特定事物的改变有可能会影响到使用该事物的其他事物。简单说在一个类中通过另外一个类来调用其方法的表示。
在这里插入图片描述
从图中可以看出Driver中使用了Car的move方法。那么就说明Driver是依赖于Car才能做Driver的职责。那么聚合与依赖有区别吗?当然很明显Driver是一个整体,Car也是整体。不是整体与部分关系。

泛化关系(Generalization):

继承(extends)关系,父类与子类关系。
类图_第1张图片
从图中可以看出Student也是Person,Teacher也是Person。
子类是Student,Teacher,父类是Person。

实现关系(Realization):

类实现(implements)了接口.当多个类有类似的行为方式的时候我们通常会适用接口。
类图_第2张图片
Ship,Car都有move的特征他们都属于交通工具(Vehicle)只是他们move的方式不一样。那么我们就可以适用接口实现的方式去设计。代码中是public class Car implements Vehicle

你可能感兴趣的:(工作笔记)