类图描述系统中的类,以及各个类之间的关系,让我们在编写代码前对系统有一个全面的认识。类图是一种静态模型类型。类图表示类、接口和它们之间的协作关系,用于系统设计阶段。

类、接口和类图

  • 类是指具有相同属性、方法和关系的对象的抽象,它封装了数据和行为。是 oop 的基础。具有封装性、继承性和多态性等三大特性。
  • 类名是一个字符串
  • 属性指类的特性,及成员变量

    1. [可见性]属性名:类型[=默认值]
    2. 例如:-name:String

    注意:“可见性”表示该属性可类外的元素是否可见。
    公有:+
    私有:-
    受保护:#
    朋友:~

  • 操作(Operations)是类的任意一个实例对象都可以使用的行为,是类的成员方法。

    1. [可见性]名称(参数列表)[:返回类型]
    2. 例如:+display():void

    注意:

  • 抽象类或抽象方法用斜体表示

  • 如果是接口。则在类名上方加 <>
  • 字段和方法返回值的数据类型非必需
  • 静态类或静态方法加下划线

    接口

    接口是一种特殊的类,它具有类的结构但不可被实例化,只可以被子类实现。它包含抽象操作,但不包含属性。描述了子类或组件对外可见的动作。
    二、UML类图及类图之间的关系 - 图1

    类之间的关系

    UML 将事物之间的联系归纳为6种,并用对应的图形类表示。将关系排列好 依赖、关联、聚合、组合、泛化。

  • 依赖关系

    • 依赖(Dependency)关系是一种使用关系,他是对象之间耦合度最弱的一种关联方式,是临时性关联。
    • 在类图中,依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类
    • 在 UML 类图中,依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。如下是人与手机的关系图,人通过手机的语音传送方法打电话。
    • 二、UML类图及类图之间的关系 - 图2
  • 关联关系
    • 关联(Association)关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系
    • 关联可以是双向的,也可以是单向的。
    • 在 UML 类图中, 双向的关联可以用带两个箭头或者没有箭头的实现来表示,单向的关联用带一个箭头的的实现来表示,箭头从使用类指向被关联的类。 也可以在关联线的两端标注角色名,代表两种不同的角色。
    • 二、UML类图及类图之间的关系 - 图3
  • 聚合关系
    • 聚合关系是关联关系的一种,是强关联关系,是整体和部分之间的关系,是 has-a 的关系。
    • 聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。
    • 在 UML 类途中, 聚合关系可以用带空心菱形的实现来表示 ,菱形指向整体。
    • 二、UML类图及类图之间的关系 - 图4
  • 组合关系
    • 组合关系也是关联关系的一种,也表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系,是 cxmtains-a 关系。
    • 整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。
    • 在 UML 类图中, 组合关系用带实心菱形的实现来表示,菱形指向整体。
    • 二、UML类图及类图之间的关系 - 图5
  • 泛化关系
    • 泛化关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类的关系,是一种继承关系,is-a 的关系。
    • 在 UML 类图中, 泛化关系用带空心三角箭头的实线来表示,箭头从子类指向父类。
    • 二、UML类图及类图之间的关系 - 图6
  • 实现关系
    • 实现关系是接口与实现类之间的关系。类实现了接口,类中的操作实现了接口中所声明的所有抽象操作。
    • 在 UML 类途中, 实现关系用带康熙你三角箭头的虚线来表示,箭头从实现类指向接口。
    • 二、UML类图及类图之间的关系 - 图7