目录

  • 类图格式
  • 基础要素
  • 基本图示
  • 示例
  • 接口(机动车为例)
  • 抽象类(汽车为例)
  • 普通类(奔驰为例子)
  • 可见性说明
  • 其他说明
  • 类与类之间的关系
  • 泛化关系(generalization)
  • 关系图
  • 示例(Benz和Bmw继承Car)
  • 实现关系(realize)
  • 关系图
  • 示例(Car 实现 MotorVehicle 接口)
  • 关联关系(Association)
  • 关系图
  • 示例1(Benz 车和 Benz 品牌的关系,Benz车可以获取Benz品牌,Benz品牌可以发布Benz车)
  • 示例2(Benz经销商卖Benz,单Benz无需知道与Benz经销商的关系)
  • 依赖关系(Dependency)
  • 关系图
  • 示例(汽车维修员维修汽车)
  • 聚合关系(Aggregation)
  • 关系图
  • 示例(部门由员工组成,但部门解散,员工还存在)
  • 组合关系(Composition)
  • 关系图
  • 示例(公司由部门组成,公司不存在,部门也不存在)

类图格式

基础要素

  • 类名
  • 属性(java叫字段)
  • 操作(java叫方法)

基本图示

java uml例子 umlib_关联关系

示例

接口(机动车为例)

java uml例子 umlib_java uml例子_02

抽象类(汽车为例)

java uml例子 umlib_公众号_03

说明:

抽象类:类名斜体
抽象方法:方法名为斜体
普通类(奔驰为例子)

java uml例子 umlib_聚合关系_04

可见性说明

符号

说明

-

private

+

public

#

protected

~

包权限

其他说明

类方法和类说明,加下划线

类与类之间的关系

泛化关系(generalization)

(is-a):指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能。

关系图

java uml例子 umlib_聚合关系_05

示例(Benz和Bmw继承Car)

java uml例子 umlib_关联关系_06

实现关系(realize)

指的是一个class类实现interface接口(可以是多个)的功能。

关系图

java uml例子 umlib_公众号_07

示例(Car 实现 MotorVehicle 接口)

java uml例子 umlib_聚合关系_08

关联关系(Association)

描述不同类的对象之间的结构关系(静态关系、运行状态无关、强关联)。

关系图

  • 不强调方向(默认):类A与类B都知道相互关联关系

java uml例子 umlib_关联关系_09

  • 强调方向:类A知道与类B关联,但是类B不知道

java uml例子 umlib_关联关系_10

示例1(Benz 车和 Benz 品牌的关系,Benz车可以获取Benz品牌,Benz品牌可以发布Benz车)

java uml例子 umlib_聚合关系_11

示例2(Benz经销商卖Benz,单Benz无需知道与Benz经销商的关系)

java uml例子 umlib_java uml例子_12

依赖关系(Dependency)

描述一个对象在运行期间会用到另一个对象的关系(动态、临时关系)。

关系图

java uml例子 umlib_java uml例子_13

示例(汽车维修员维修汽车)

java uml例子 umlib_java uml例子_14

聚合关系(Aggregation)

(has-a):聚合关系用于表示实体对象之间的关系,表示整体由部分构成,但不是强依赖关系,部分可以脱离整体存在。

关系图

java uml例子 umlib_关联关系_15

示例(部门由员工组成,但部门解散,员工还存在)

java uml例子 umlib_java uml例子_16

组合关系(Composition)

(contains-a):组合关系是一种强依赖的特殊聚合关系,同样可表示整体由部分构成,但部分不能脱离整体存在。

关系图

java uml例子 umlib_聚合关系_17

示例(公司由部门组成,公司不存在,部门也不存在)

java uml例子 umlib_java uml例子_18