UML中类图的一些基本知识

简介: 一.类 类(class)封装了数据和行为,是面向对象的重要组成部分,他是具有相同操作、属性、关系的对象集合的总称。 在软件运行时,类被实例化成对象(object),对象对应某个具体的事物,是类的实例(instance) 类图(class diagram)使用出现在系统中的不同类来描述系统的静态结构,它用来描述不同的类以及它们之间的关系。

一.类

类(class)封装了数据和行为,是面向对象的重要组成部分,他是具有相同操作、属性、关系的对象集合的总称。

在软件运行时,类被实例化成对象(object),对象对应某个具体的事物,是类的实例(instance)

类图(class diagram)使用出现在系统中的不同类来描述系统的静态结构,它用来描述不同的类以及它们之间的关系。

 

在系统分析和设计阶段,类通常可以分为三种,分别是实体类(Entity class)、控制类(Control Class)和边界类(Boundary Class)。

1)实体类:对应系统中的每个实体,它们通常需要保存在永久存储体中,一般使用数据库或文件表来记录,实体类既包括存储和传递数据的类,还包括操作数据的类。实体类来源于需求说明中的名词,如学生、商品等。

2)控制类:用于体现应用程序的执行逻辑,提供相应的业务操作,将控制 类抽象出来可以降低界面和数据库之间的耦合度。控制类一般是由动宾结构的短语(动词加名词)转化来的名词,比如增加商品类,用户注册类。

3)边界类:用于对外部用户和系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单。

 

二.类的UML表示

一般是长方形(分三格),类名在最上面那格,中间是成员变量(属性),最下面是成员函数(行为)。

属性格式: 可见性 名称:类型 [ = 缺省值]

行为格式: 可见性 名词(参数列表) [ : 返回类型]

关于可见性: + public,- private,# protected

例如:

三.类与类之间的关系

在软件系统中,类表示孤立存在的,类与类之间存在各种关系,UML提供不提供表示方式。

1.关联关系(Association):

最常用的一种关系,它是一种结构化关系,用于表示一类对象和另一对象之间有联系。

在UML类图中,用实线连接有关联关系的对象所对应的类。

实际的场景:class A有一个成员对象b,b的类型是class B。那就可以表示为A与B用实线连接起来,箭头由A指向B。

 

1.1双向关联:

默认情况下关联是双向的,也就是没有箭头指向的。

比如顾客里面有商品,同时卖出的商品里面也可以有顾客。

1.2单向关联:

就像上面的例子一样,XHTTPServer有成员XTcp。

1.3自关联:

存在一些类的属性对象类型为该类本身。比如一个节点的成员也是节点类型的对象。

1.4 多重性关联(Multiolicity):

表示两个关联对象在数量上的对应关系。

在UML中对象之间的多重性可以直接在关联直线上用一个数字或一个数字范围表示。

常见的多重性表示如下图:

 

 

比如一个界面(Form)可以拥有零个或多个按钮,一个按钮只能属于一个界面。

 

 

 

1.5 聚合关系(Aggregation):

表示整体与部分的关系。在聚合关系中,成员对象是整体对象的一部分,但是成员对象也可以脱离整体对象独立存在。

在UML中聚合关系用空心菱形的直线表示。

比如汽车发动机是汽车的一部分,但是发动机也可以独立存在。

 

 

 

1.6 组合关系(composition):

表示整体和部分的关系,但是在组合关系中整体对象可以控制成员对象的生命周期。一旦整体对象不在了,成员对象也就不在了。具有同生共死的关系。

在UML中用带实心菱形的直线表示。

比如,头是整体,嘴巴只是一个部分。嘴巴不能独立存在

 

 

 

2.依赖关系(Dependency):

是一种使用关系,特定事物的改变有可能会影响到使用该事物的事物,在需要表示一个事物使用另一个事物的时就用到了依赖关系。

比如:classA中的fun(B b),方法fun中用到了class B对象。

在UML中用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

 

 

 

3.泛化关系(Generalization):

也就是继承关系。描述父类与子类之间的关系。

在UML中使用带空性三角形的直线来表示。

 

4.接口与实现关系(Realization)

接口和类之间还存在一种实现关系。这种关系中,类实现了接口,类中的操作实现了接口中所做的声明。

在UML中类与接口之间的实现关系用带空心三角形的虚线来表示。

比如,下面的接口Vehicle,包含抽象操作move,类ship和类car都实现了该move操作,具体的细节会不一样而已。

 

 

 关于上面的参考:http://www.uml.org.cn/oobject/201211231.asp

关于如何用Enterprise Architect 8.0画类图可以参考:http://blog.csdn.net/cfeibiao/article/details/8545083

目录
相关文章
|
7月前
|
uml
UML之类图
UML之类图
102 1
|
7月前
|
数据可视化 Java uml
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
IDEA中一个被低估的功能,一键把项目代码绘制成UML类图
439 1
|
uml
IDEA使用插件绘制UML类图+PlantUML语法讲解
IDEA使用插件绘制UML类图+PlantUML语法讲解
896 0
|
4月前
|
Java uml
使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实
该博客文章通过UML类图和Java代码示例,展示了如何使用工厂方法模式设计一个支持加法、减法、乘法和除法运算的计算机程序,并严格按照类图设计实现程序。
|
4月前
|
Java uml
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
该博客文章展示了如何使用简单工厂模式设计一个程序,该程序能够根据用户输入的运算符(加、减、乘、除)对两个数进行计算,并提供了相应的UML类图和Java源码实现。
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
|
6月前
|
应用服务中间件 uml
【UML】软件工程中常用图:类图、部署图、时序图、状态图
【UML】软件工程中常用图:类图、部署图、时序图、状态图
970 1
|
4月前
|
数据可视化 Java uml
精通UML:从类图到序列图的实战指南
【8月更文第23天】统一建模语言(Unified Modeling Language, UML)是一种用于软件工程的标准图形化语言,它提供了一套工具来帮助开发团队可视化、构造和文档化软件系统。在UML中,类图和序列图是最常用也是最重要的两种图。类图用于描述系统的静态结构,而序列图则用于表示对象之间的交互和系统的动态行为。
237 5
|
4月前
|
设计模式 uml
设计模式常用的UML图------类图
这篇文章介绍了UML中类图的基本概念和用途,详细解释了类与接口、类之间的关系,包括继承、实现、组合、聚合、关联和依赖等六种关系,并展示了它们在类图中的表示方法。
设计模式常用的UML图------类图
|
4月前
|
uml
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
637 0
|
7月前
|
设计模式 数据可视化 程序员
软件设计模式:UML类图
软件设计模式:UML类图
165 1