文档章节

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
粉丝 9
博文 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

没有更多内容

加载失败,请刷新页面

加载更多

firewalld

1. firewalld 是什么 CentOS中默认是有 firewalld, iptables, etablesd firewalld 是 CentOS7/RadHat7 中默认的防火墙管理工具. firewalld 工具用来管理里netfilter, 不过底层还是调用的还是...

Fc丶
33分钟前
1
0
Java 源代码和 C 源代码的运行区别

与其他程序的执行方式和编译方式不同。 Java 源代码需要进行编译成字节码后在 Java 虚拟机上运行,这样 Java 程序能够保持独立性和跨平台功特性。 请参考下图。 https://www.cwiki.us/pages...

honeymose
今天
5
0
Apache限定目录解析PHP,限制user_agent,PHP相关的配置

Apache限定目录解析PHP 配置前访问upload/index.php [root@test-a ~]# curl -x192.168.77.139:80 'www.test.com/upload/index.php'This is upload diretory 配置,/usr/local/apache2.4/......

野雪球
今天
5
0
java.util.Concurrent.Exchanger源码

类图 源码: package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent......

狼王黄师傅
今天
6
0
Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部