- 类图和对象图

类图标

<UML基础、案例与应用> - 类图和对象图_第1张图片
UML 包里的类图标
(1)包名::类名 ——路径名
(2)标红 ——附加信息
(3)... ——省略符
(4)花括号 ——约束

UML的类图标是由一个矩形表示。

  • 类名字、属性、操作和职责都在区域中有各自的方框
  • 可以使用构造型组织属性和操作名列表
  • 可以使用类的省略表示法,只表现出类的一部分属性和操作,使得类图比较清晰。
  • 可以在类图标中指定属性的类型和初始值
  • 可以指明操作执行时所需要的参数和参数类型(这些附加信息被称为型构
  • 可以对类施加约束,以减少描述类时的二义性
  • 允许对模型元素附加注释来说明相关更多的附加信息

类之间的关系

关系说明了类模型所表达的概念之间的连接,这样才能完整地说明我们所建模的对象。

关联

类之间最基础的概念性连接。

  • 关联用一条直线表示,其两端可以注明角色名和多重性,和类一样,关联也有自己的属性和操作(关联类)。用虚线将关联类和对应的关联线连接起来。
<UML基础、案例与应用> - 类图和对象图_第2张图片
关联
实心箭头——关联方向
花括号——关联上的约束

关联也有自己的实例,叫做——链

链链接的是对象,而不是类。和对象名一样,要加下划线
  • 多重性

表示多重性的方法是在参与关联的类附近的关联线上(或下)注明多重性数值。

<UML基础、案例与应用> - 类图和对象图_第3张图片
多重性
* ——多个
.. ——或
, ——或
  • 限定关联
<UML基础、案例与应用> - 类图和对象图_第4张图片
属性值信息叫做限定符,使用时表示限定了一种关联
  • 自身关联

一个类可能与自身发生关联。当一个类的对象可以充当多种角色时,自身关联就可能发生。

自身关联的关联线从某个类出发又回到自身。自身关联也可以指明角色名、关联名、关联方向和多重性。

继承

寻找不同类的共同属性和操作可以发现类之间的继承关系。在父类中已经指明的属性和操作,在子类中可以不用再指明。

  • 继承的表示法是从子类画一条带空心三角形箭头的连线指向父类。
<UML基础、案例与应用> - 类图和对象图_第5张图片
单继承
基类(根类):没有父类
叶类:没有子类
单继承:只有一个父类
多继承:有多个父类
“基类是”斜体 ——表示抽象类类名

抽象类只是为了提供其他类继承的基类之用,本身不产生对象示例。用斜体书写。

依赖

一个类使用了另一个类。
最通常的用法:用来说明某个类操作的型构使用了另一个类的定义。

  • 用从依赖类到被依赖类的带箭头的虚线表示
<UML基础、案例与应用> - 类图和对象图_第6张图片
依赖

聚集

一个类有时是由几个部分类组成的,这种特殊类型的关系被称为聚集

<UML基础、案例与应用> - 类图和对象图_第7张图片
可以在聚集上施加一个“or”约束,它表示某个整体包含一个或另一个部分。整体和部分用带空心菱形箭头的连线连接
  • 组成

强类型的聚集。其中的每部分体只能属于一个整体。

<UML基础、案例与应用> - 类图和对象图_第8张图片
在组成关系中,每个部分只能属于一个整体。除菱形箭头是实心之外,组成和聚集的表示法相同

实现

一个类和它的接口之间的关系。

  • 接口

描述类的部分行为的一组操作。

和类大致相同,用一个矩形图标来代表,但接口只是一组操作,没有属性。当类省略了属性后,可以使用构造型接口 区分开。

<UML基础、案例与应用> - 类图和对象图_第9张图片
接口是一个类的操作集合,类和接口之间可以通过实现关系连接,实现关系用带空心三角形的虚线表示,箭头指向接口一端
<UML基础、案例与应用> - 类图和对象图_第10张图片
被类实现的接口的省略表示法

一个类可以实现多个接口,一个接口也可以被多个类实现。

我们通过接口实现对的操作,通过接口的交互建模为一种依赖

<UML基础、案例与应用> - 类图和对象图_第11张图片
使用依赖符号对通过接口和类的交互来建模(下图:引用了“球窝”符号表示省略的接口符号)

接口和端口

<UML基础、案例与应用> - 类图和对象图_第12张图片
接口和端口

可见性

接口实现密切相关,可应用于属性或操作,它说明在给定类的属性和操作(或者接口的操作)的情况下,其他类可以访问到的属性和操作的范围。有3种层次(级别)——

  • 公有
    其他类可直接访问这个层次中的属性和操作。
  • 受保护
    只有继承了这些属性和操作的子类可以访问最初类的属性和操作。
  • 私有
    只有最初的类才能访问这些属性和操作。

实现关系意味着接口中的所有操作都是公有的。

3种层次分别用不同符号表示,并放在属性或操作名前:

“+”——公有
“#”——受保护
“-”——私有

作用域

属性操作相关的概念。

存在两种——

  • 实例作用域
    一个类的每个对象的都有各自的属性值或操作。

  • 分类符作用域
    一个类的所有实例对象共享一个属性值和操作。具有分类作用域的属性和操作名字要带下划线。属于这组对象的其他对象不能访问分类符作用域值(私有)。

类图和对象图

类图给出了一般性的、定义性的信息:一个类的特性以及它的属性,以及和这个类关联的其他的类。

对象图则在某个 特定时刻 及时给出了一个类的多个具体实例 以及它们如何联系起来等相关信息。

你可能感兴趣的:( - 类图和对象图)