类图标
UML 包里的类图标(1)包名::类名 ——路径名
(2)标红 ——附加信息
(3)... ——省略符
(4)花括号 ——约束
UML的类图标是由一个矩形表示。
- 类名字、属性、操作和职责都在区域中有各自的方框
- 可以使用构造型来组织属性和操作名列表
- 可以使用类的省略表示法,只表现出类的一部分属性和操作,使得类图比较清晰。
- 可以在类图标中指定属性的类型和初始值
- 可以指明操作执行时所需要的参数和参数类型(这些附加信息被称为型构)
- 可以对类施加约束,以减少描述类时的二义性
- 允许对模型元素附加注释来说明相关更多的附加信息
类之间的关系
关系说明了类模型所表达的概念之间的连接,这样才能完整地说明我们所建模的对象。
关联
类之间最基础的概念性连接。
- 关联用一条直线表示,其两端可以注明角色名和多重性,和类一样,关联也有自己的属性和操作(关联类)。用虚线将关联类和对应的关联线连接起来。
实心箭头——关联方向
花括号——关联上的约束
链链接的是对象,而不是类。和对象名一样,要加下划线关联也有自己的实例,叫做——链
- 多重性
表示多重性的方法是在参与关联的类附近的关联线上(或下)注明多重性数值。
多重性* ——多个
.. ——或
, ——或
- 限定关联
- 自身关联
一个类可能与自身发生关联。当一个类的对象可以充当多种角色时,自身关联就可能发生。
自身关联的关联线从某个类出发又回到自身。自身关联也可以指明角色名、关联名、关联方向和多重性。
继承
寻找不同类的共同属性和操作可以发现类之间的继承关系。在父类中已经指明的属性和操作,在子类中可以不用再指明。
- 继承的表示法是从子类画一条带空心三角形箭头的连线指向父类。
基类(根类):没有父类
叶类:没有子类
单继承:只有一个父类
多继承:有多个父类
“基类是”斜体 ——表示抽象类类名
抽象类只是为了提供其他类继承的基类之用,本身不产生对象示例。用斜体书写。
依赖
一个类使用了另一个类。
最通常的用法:用来说明某个类操作的型构使用了另一个类的定义。
- 用从依赖类到被依赖类的带箭头的虚线表示
聚集
一个类有时是由几个部分类组成的,这种特殊类型的关系被称为聚集。
可以在聚集上施加一个“or”约束,它表示某个整体包含一个或另一个部分。整体和部分用带空心菱形箭头的连线连接- 组成
强类型的聚集。其中的每部分体只能属于一个整体。
在组成关系中,每个部分只能属于一个整体。除菱形箭头是实心之外,组成和聚集的表示法相同实现
一个类和它的接口之间的关系。
- 接口
描述类的部分行为的一组操作。
和类大致相同,用一个矩形图标来代表,但接口只是一组操作,没有属性。当类省略了属性后,可以使用构造型将类和接口 区分开。
接口是一个类的操作集合,类和接口之间可以通过实现关系连接,实现关系用带空心三角形的虚线表示,箭头指向接口一端 被类实现的接口的省略表示法一个类可以实现多个接口,一个接口也可以被多个类实现。
我们通过接口实现对类的操作,通过接口的交互建模为一种依赖。
使用依赖符号对通过接口和类的交互来建模(下图:引用了“球窝”符号表示省略的接口符号)接口和端口
接口和端口可见性
与接口和实现密切相关,可应用于属性或操作,它说明在给定类的属性和操作(或者接口的操作)的情况下,其他类可以访问到的属性和操作的范围。有3种层次(级别)——
- 公有
其他类可直接访问这个层次中的属性和操作。 - 受保护
只有继承了这些属性和操作的子类可以访问最初类的属性和操作。 - 私有
只有最初的类才能访问这些属性和操作。
实现关系意味着接口中的所有操作都是公有的。
3种层次分别用不同符号表示,并放在属性或操作名前:
“+”——公有
“#”——受保护
“-”——私有
作用域
与属性和操作相关的概念。
存在两种——
-
实例作用域
一个类的每个对象的都有各自的属性值或操作。 -
分类符作用域
一个类的所有实例对象共享一个属性值和操作。具有分类作用域的属性和操作名字要带下划线。属于这组对象的其他对象不能访问分类符作用域值(私有)。
类图和对象图
类图给出了一般性的、定义性的信息:一个类的特性以及它的属性,以及和这个类关联的其他的类。
对象图则在某个 特定时刻 及时给出了一个类的多个具体实例 以及它们如何联系起来等相关信息。
网友评论