文档章节

UML类图(1)

hell03W
 hell03W
发布于 2016/11/24 21:19
字数 830
阅读 19
收藏 0

1. 类的UML图示

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

类图: 用来描述不同的类和他们之间的关系.

UML中, 类使用包含类名, 属性, 操作且带有分割线的长方形表示, 如下:

类一般由三部分构成:

**类名:**就是类的名称, 类名是一个字符串.

**类的属性: **指类的性质, 即类的成员变量. 一个类可以有任意多个属性, 也可以没有属性.

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

+, -, # 分别表示: 公有(public)、私有(private)和受保护(protected)
类型表示属性的类型.

**类的操作: **操作是类的任意一个实例对象都可以使用的行为, 是类的成员方法.

可见性  名称(参数列表) [ : 返回类型]

可见性, 名称 同`类的操作`; 参数列表表示方法的参数; 返回值类型表示, 方法的返回值

2. 类与类之间的关系: 关联关系

在软件系统中, 类并不是孤立存在的, 类与类之间的各种关系, 对于不同类型的关系, UML提供了不同的表达方式.

2.1 双向关联

如下图所示, 是双向关联. 用不带箭头的实线表示.

2.2 单向关联(Association)

类的关联关系也可以是单向的, 用一个带箭头的实线表示, 如下图所示.

2.3 自关联

在系统中, 可能存在某一些类属性对象类型为该类自身, 这种特殊关联成为自关联. 例如在组合模式, 单例模式中就有自关联的类. 类图如下所示:

2.4 多重关联

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

2.5 聚合关系(Aggregation)

聚合(Aggregation)关系表示整体和部分的关系. **在聚合关系中, 成员对象是整体对象的一部分, 但是成员对象可以脱离整体对象而独立存在.**在UML中,聚合关系用带空心菱形的直线表示。

在代码实现聚合关系时候, 成员对象通常作为构造方法, setter方法或者业务方法的参数注入到整体对象中.

2.6 组合关系(Composition)

组合关系也表示类之间的整体与部分的关系. 组合关系中, 整体对象可以控制成员对象的声明周期, 一旦整体对象不存在, 成员对象也将不存在, 成员对象和整体对象之间具有同生共死的关系. 在UML中, 用实心菱形的直线表示.

3. 类与类之间的关系: 依赖关系

4. 类与类之间的关系: 泛化关系(继承关系)

泛化关系就是继承关系, 用于描述父类和子类之间的关系, 父类称为基类或者超类, 子类又称为派生类.在UML中, 泛化关系用带空心三角形的直线表示.

5. 类与类之间的关系: 接口与实现关系

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

© 著作权归作者所有

共有 人打赏支持
hell03W
粉丝 10
博文 145
码字总数 109892
作品 0
朝阳
程序员
使用UML创建模块库——第一部分(三)

MyEclipse 在线购买低至75折!火爆开抢>> 【MyEclipse最新版下载】 UML1建模文件存储在建模库中,建模可用于生成Java代码,或者可以从代码中生成模型。本教程将向您展示如何执行与建模资源库...

Miss_Hello_World
08/02
0
0
软考之UML图深入学习(2)

前言 经历过软考之后的UML图学习,对于九种图有了更加深入的认识,上一篇文章《软考之UML图深入学习(1)》中,介绍了UML建模工具是什么? 这篇文章继前文,进一步深入,从小编思考的UML图进...

m18633778874
2017/11/12
0
0
6 个 Java 项目的 UML 反向工程工具

将 Java 项目转成结构清晰的 UML 类图,可以让我们更轻松的理解项目的结构以及模块间的依赖关系。本文介绍 6 款开源的工具,可以将 Java 项目反向工程到 UML 的类图。 1. Eclipse MDT 模型开...

oschina
2012/09/12
18.9K
9
UML类图符号理论

前言 相信大家在学习UML类图的时候,最大的困难可能来自两个方面: 类图中各种关系的区别; 多种关系的符号记忆容易混淆; 本着"Do one thing and do it well."的原则,本文不介绍UML类图中各...

算法与编程之美
2016/02/18
276
3
Class Model(类模型)

UML自学笔记之类图 1. UML类图简介 在UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。建模工具也主要根据类图来产生代码。类图在UML的9个图中占据了一...

残风vs逝梦
2015/06/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

09-利用思维导图梳理JavaSE-

09-利用思维导图梳理JavaSE-Java IO流 主要内容 1.Java IO概述 1.1.定义 1.2.输入流 - InputStream 1.3.输出流 - OutputStream 1.4.IO流的分类 1.5.字符流和字节流 2.InputStream类 2.1.File...

飞鱼说编程
5分钟前
0
0
Spring Cloud 微服务的那点事

在详细的了解SpringCloud中所使用的各个组件之前,我们先了解下微服务框架的前世今生。 单体架构 在网站开发的前期,项目面临的流量相对较少,单一应用可以实现我们所需要的功能,从而减少开...

我是你大哥
15分钟前
0
0
步步深入MySQL:架构->查询执行流程->SQL解析顺序

一、前言 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一...

Java干货分享
29分钟前
0
0
gson1.7.1线程并发导致空指针问题

java.lang.NullPointerExceptionat com.google.gson.FieldAttributes.getAnnotationFromArray(FieldAttributes.java:231)at com.google.gson.FieldAttributes.getAnnotation(FieldAttribut......

东风125
今天
3
0
以太坊RPC接口使用

以太坊RPC接口文档: https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientversion 使用方式: 比如我要调用某个合约的balanceOf(address _owner)方法。 因为没有改变合约的状态,所以...

王坤charlie
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部