UML类图

一、概念

      1. 显示出类、接口以及它们之间的静态结构和关系

   2. 用于描述系统的结构化设计

二、元素

       1. 具体类

             具体类在类图中用矩形框表示,矩形框分为三层:第一层是类名字。第二层是类的成员变量;第三层是类的方法。成员  变量以及方法前的访问修饰符用符号来表示:

              “+”表示 public;

              “-”表示 private;

              “#”表示 protected;

               不带符号表示 default。

      2. 抽象类

               抽象类在UML类图中同样用矩形框表示,抽象类的类名以及抽象方法都用斜体字表示。

      3. 接口

              接口在类图中也是用矩形框表示,接口在类图中的第一层顶端用构造型 <>表示,下面是接口的名字,第二层是方法

三、关系

类和类,类和接口,接口和接口之间存在一定关系,UML类图中一般会有连线指明它们之间的关系。关系共有六种类型,分别是实现关系、泛化关系、关联关系、依赖关系、聚合关系、组合关系,如下图所示。

六种关系

1. 实现关系

实现关系是指接口及其实现类之间的关系。实现关系用空心三角和虚线组成的箭头来表示,从实现类指向接口。在Java代码中,实现关系可以直接翻译为关键字 implements。

实现关系

2. 泛化关系

是指对象与对象之间的继承关系。如果对象A和对象B之间的“is a”关系成立,那么二者之间就存在继承关系,对象B是父对象,对象A是子对象。例如,女学生“is a”学生,很显然女学生对象和学生对象之间存在继承关系,Student对象是父对象,FemaleStudent对象是子对象。

在UML类图中,泛化关系用空心三角和实线组成的箭头表示,从子类指向父类,在Java代码中,对象之间的泛化关系可以直接翻译为关键字 extends。

泛化关系

3. 关联关系

3.1 一般关联

是指对象和对象之间的连接,它使一个对象知道另一个对象的属性和方法。在Java中,关联关系的代码表现形式为一个对象含有另一个对象的引用。也就是说,如果一个对象的类代码中,包含有另一个对象的引用,那么这两个对象之间就是关联关系。关联关系的一种,是一种强关联关系(has-a)。

在UML图中,双向关联关系用带双箭头的实线或者无箭头的实线双线表示。单向关联用一个带箭头的实线表示,箭头指向被关联的对象。

3.2 依赖

类与类之间 一种 使用 与 被使用 的关系。依赖关系在 Java 中的具体代码表现形式为:

      1. B 为 A 的构造器或方法中的局部变量

      2. B 为 A方法或构造器的参数

      3. B 为 A方法的返回值

      4. A 调用 B 的静态方法

简单来说,就是 A 类中, 出现了 B 类,用带箭头的虚线表示,箭头指向被依赖元素

依赖关系

3.3 聚合

聚合关系是 整体部分之间的关系。且部分可以离开整体而单独存在,如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。聚合关系是关联关系的一种,是强的关联关系,关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

用带空心菱形的实线表示,菱形指向整体。

聚会关系

3.4 组合

关联关系的一种,但是这种关系比聚合关系更强 (contains-a)

组合关系不能共享

在组合关系中,如果代表整体的对象被销毁或破坏,那么代表个体/部分的对象也一定会被销毁或破坏,而聚在合关系中,代表个体/部分的对象则有可能被多个代表整体的对象所共享,而不一定会随着某个代表整体的对象被销毁或破坏而被销毁或破坏;

具体体现:在Java 中,组合关系是通过成员变量来实现的。

用带实心菱形的实线表示,菱形指向整体

组合关系

你可能感兴趣的:(UML类图)