UML类图介绍(转载)
UML类图详细介绍
类图中的三种对象
类/抽象类
类的表示一般一般如下图所示
类名:图正中间的黑体字表示类的名称,如果是名字的字体是斜体字,则表明该类是抽象类
- 属性:类名下面的区域表示类的属性
- 操作:属性下面的区域表示类的操作(或者说方法)。
- 可见性:属性和操作前面的+、-、#符号代表了这些对象的可见性分别是public、private、protected
接口
接口的表示一般如下图所示

接口的图和类图类似,只不过加入了interface标识。接口中的成员可见性都是public
类图中的六种关系
类图中,类与类之间一般会有六种关系,他们分别是继承(Generalization)、实现(Implements)、组合(Composition)、聚合(Aggressgation)、依赖(Dependency)、关联(Association)
继承(Generalization)
如果对面向对象编程思想了解,则比较容易理解继承的概念。在面向对象的编程思想中,继承是指子类继承了父类的所有功能,并且能够在父类的基础上扩展自己的功能。这里的继承就是表现这种父类和子类的关系。继承关系如下图所示
在这里Teacher和Student类分别是继承了Person类,自动拥有了Person类的公共属性和操作。同时他们分别扩展了自己独有的操作teach和listen。继承关系用一个实线空箭头的连线来表示,箭头指向父类
实现(Implements)
实现的概念和继承有些类似。但是接口中不会有已经写好的操作或者方法,接口中声明的操作都需要再实现类中实现。实现关系如下图所示

在这里SuperMan类一样继承了Person类,因为超人还有一个特性是会飞,所以他还实现了一个Fly的接口。实现关系用一个虚线空心箭头的连线来表示,箭头指向接口。
组合(Composition)
组合表示的是两个对象之间一种强“拥有”的关系,如果B组合成为A,那么B是A的一个整体,B和A的生命周期是一样的。例如是一种部分与整体的关系,部分与整体之间的生命周期是一样的。组合关系用一个一个带箭头的连线表示,尾巴上有实心的菱形,箭头指向被拥有的对象。上面的数字表示两者之间的数量关系。如下图所示
在这里,Hand和Person是组合关系,Hand是Person的部分,Person拥有Hand,而且Hand的生命周期依赖Person的生命周期。也就是说Person没有了,Person的Hand也没有了。在这里表示一个Hand一定归宿一个Person而一个Person可能有0个或者多个Hand。
聚合(Aggressgation)
聚合也表示两个对象之间的一种拥有关系,但是这个关系是一种弱的拥有关系。两者的生命周期是不依赖的。这是和组合的一个重要区别。聚合关系用一个带箭头的连续表示,尾巴带一个空心的菱形,箭头指向被拥有的对象。上面的数字表示两个对象之间的数量关系。如下图所示
这里Classess是由Teacher和Student聚合而成,他们之间是一种拥有关系,但是Classes消亡,并不代表Teacher和Student的消亡,他们的生命周期是不依赖的。这是和组合的重要区别。这幅图里面聚合关系上的数字表示一个Teacher可以在0或者多个Classes中,而一个班级可以由0到多个Teacher。Classes和Student之间聚合关系上的的数量表示的是同样的含义。
依赖(Dependency)
如果一个对象的活动中要依赖另一个对象,则两者之间是依赖关系。例如学生上课依赖课程对象,老师教课也依赖课程对象。依赖关系用一个虚线箭头表示,箭头指向被依赖的对象。在代码中一般体现为操作的参数。如下图所示
关联(Association)
如果一个对象需要知道另一个对象,则对象之间是一种关联的关系。关联可以是单向的,即一个对象知道另一个对象,而另一个对象不知道该对象,也可以是双向的,即两个对象相互知道。关联式用一条实现表示,单向关联带一个箭头,指向被知道的对象,双向关联无箭头。例如学生需要了解考试对象的情况,考试对象需要了解学生的情况,这是一种双向关联关系。如下图所示。
UML类图介绍(转载)的更多相关文章
- 北风设计模式课程---20、UML类图介绍
北风设计模式课程---20.UML类图介绍 一.总结 一句话总结: 不仅要通过视频学,还要看别的博客里面的介绍,搜讲解,搜作用,搜实例 设计模式都是对生活的抽象,比如用户获得装备,我可以先装备工厂先生 ...
- UML 类图介绍
UML 类图介绍 一. UML 简介 UML ( Unified Modeling Language )即统一建模语言,是 OMG ( Object Management Group )发表的图标式软 ...
- UML类图介绍&类的六大关系
UML类图介绍&类的六大关系 官方定义 UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,用于帮助软件开发人员进行思考和记录思路的方式 UML 图形化的语言 基本介绍 UML图: ...
- UML类图介绍以及PlantUML使用方法
类的UML表示方法 UML介绍 类图,是UML(统一建模语言)中用于描述"类"以及"类与类"之间的示意图.它形象的描述出了系统的结构,帮助人们理解系统. 类图是 ...
- UML类图介绍及简单用法
原文链接 一.类的属性的表示方式 在UML类图中,类使用包含类名.属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和em ...
- UML类图介绍
一.概述 UML类图用来定义系统中的类,包括描述类的结构和类之间的关系.类图的主要作用于描述系统的静态结构. 类图的基本模型元素如下:
- UML类图(转载)
概述: 类图是静态图.它代表了一个应用程序的静态视图.类图不仅用于可视化描述和记录系统的不同方面,但也为构建可执行代码的软件应用程序. 类图描述一类的属性和操作,也对系统的约束.被广泛应用于类图的建模 ...
- [转帖]UML类图新手入门级介绍
UML类图新手入门级介绍 2010-11-12 19:45:00 monkey_d_meng 阅读数 27230 收藏 文章标签: umlinterfaceclass编程扩展更多 分类专栏: 软件工 ...
- 转载:23种常用设计模式的UML类图
转载至:https://www.cnblogs.com/zytrue/p/8484806.html 23种常用设计模式的UML类图 本文UML类图参考<Head First 设计模式>(源 ...
随机推荐
- 转:Apache+Fastcgi+Django
07年作者就贴出的文章了,可见多么古老的运行方式还在用. 转:http://www.cnblogs.com/RChen/archive/2007/03/23/django_fcgi.html 首先要安 ...
- ZOJ 3327 Friend Number
构造. (1)如果数字中带有$0$: 1.只有个位是$0$,这种情况就是给输入的数字$+10$再输出即可. 2.其余情况就是给输入的数字$+1$再输出即可. (2)如果数字中没有$0$: 从个位开始一 ...
- Java九大内置对象
Java九大内置对象 内置对象/作用域(每一种作用域的生命周期是不一样的): 1, application 全局作用域 2, session 会话作用域 ...
- sqlldr load UTF8 error
The default length semantics for all datafiles (except UFT-16) is byte. So in your case you have a C ...
- 微软移除Visual Studio 2015中的UML
微软已经在Visual Studio 2015中移除了UML(Unified Modeling Language,统一建模语言),原因是该语言使用率过低.因此微软要优化产品结构,把好钢用在刀刃上. V ...
- [NOI2016]循环之美(杜教筛)
首先要求每个数互不相等,故有$x\perp y$. 可以发现$\frac{x}{y}$在$k$进制下为纯循环小数的充要条件为$x\cdot k^{len}\equiv x(mod\ y)$,即$y\p ...
- POJ2068 Nim 博弈论 dp
http://poj.org/problem?id=2068 博弈论的动态规划,依然是根据必胜点和必输点的定义,才明白过来博弈论的dp和sg函数差不多完全是两个概念(前者包含后者),sg函数只是mex ...
- BZOJ 3391 [Usaco2004 Dec]Tree Cutting网络破坏(树形DP)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3391 [题目大意] 给定一棵树,求分支size均不大于一半点数的点 [题解] 递归的同 ...
- 【高斯消元解xor方程组】BZOJ2466-[中山市选2009]树
[题目大意] 给出一棵树,初始状态均为0,每反转一个节点的状态,相邻的节点(父亲或儿子)也会反转,问要使状态均为1,至少操作几次? [思路] 一场大暴雨即将来临,白昼恍如黑夜!happy! 和POJ1 ...
- Codeforces Beta Round #3 D. Least Cost Bracket Sequence 优先队列
D. Least Cost Bracket Sequence 题目连接: http://www.codeforces.com/contest/3/problem/D Description This ...