类图(Class Diagram)

来源:互联网 发布:淘宝质量问题赔偿标准 编辑:程序博客网 时间:2024/06/05 16:54

前面已经介绍过了用例图,在用例图中抽象出类,然后进行类图的绘制。

一、先让我们了解一下何为类(Class)?

1、概念:

类是对真实客观世界中客观存在的事物的抽象的描述,是对具有相同属性、操作、关系和语义的对象的描述。比如鱼、鸟、蛇,对它们进行抽象,我们可以得到一个类——“动物”。


2、组成:

类一般包含3个组成部分:类名(name)、属性(attributes)、方法(operations)。类名是不可以省略的,而属性和方法可以省略。


3、可见性修饰符:

类的属性和方法有四种可见性修饰符:

(1)Public:公有的,表示对所有类可见

(2)Protected:受保护的,对该类的子孙可见

(3)Private:私有的,只对该类本身可见

(4)Implementation:

对于implementation这个修饰符,有些资料是将“Implementation”换成了“Package”,表示省略以上三种修饰符的具有包级别的可见性。自己本身并不是很理解,但是为了完整性还是列出来了,希望大家可以提出自己的想法。


二、类图:

1、概念:

类图是把待开发系统中的对象进行抽象得到我们需要的类,再通过某种关系将各个类组合在一起形成的图。类图显示出类、接口以及它们之间的静态结构和关系。


2、类之间的关系:

(1)关联:可以先将关联关系认为是一种拥有关系

A. 普通关联:用一条直线表示

B. 单向关联(导航关联):用带箭头的直线表示,箭头指向被拥有者。比如学生和课程之间的关系。

C. 双向关联:用直线表示,比如老师和学生。

D. 聚合(整体-部分关系,可以相互独立存在):用带空心菱形的直线表示,菱形指向整体。比如车和轮胎的关系。

E. 组合(附属关系):用带实心菱形的直线表示,菱形指向整体。部分不能离开整体而单独存在,比如公司和部门是整体和部分的关系,没有公司就不存在部门。


(2)依赖:可以认为是一种使用关系,即一个类的实现需要另一个类的协助。

用带箭头的虚线表示,箭头指向被使用者。


(3)泛化:泛化关系是一种继承关系,表示子类将继承父类所有的特征和行为,同时子类可以有自己新的特征和行为。

用带三角箭头的实现表示,箭头指向父类。


(4)实现:实现关系是一种类与接口的关系,表示类是接口所有特征和行为的实现。

用带三角箭头的虚线表示,箭头指向接口。


3、多重性:



各种关系的强弱顺序:

泛化=实现>组合>聚合>关联>依赖


下面是用Rational Rose 画的机房收费系统的类图:





1 0