详细说明UML类图是什么?

article/2025/8/19 11:02:22

作者:亿图图示
链接:https://www.zhihu.com/question/419312525/answer/1535413984
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

UML类图,UML中的一种重要图形,是在面向对象语言用中用来表示一个类。UML不止类图,还有活动图、对象图、状态图、时序图等。

如下图所示(它由两部分组成,类和类之间的关系):

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

动物UML类图

1 类

类是具有相似结构、行为和关系的一组对象的描述符,是面向对象系统中最重要的构造块。

如下图所示,就表示一个类:

三个格子从上至下分别表示:

  • 类名称(如果是接口,就使用斜体表示)
  • 类的特性(一般是类的字段和属性,可以没有)
  • 类的操作(一般是类的方法或行为)

它们前边的符号有以下几类:

  • “+”表示public
  • “-”表示private
  • “#”表示protected
  • "~"表示default,也就是包权限
  • “_”下划线表示static
  • 斜体表示抽象

2 类的关系

除了类,类图中还有一个重要元素,即类之间的关系。

根据类的关系的不同,具体可分为6种:

2.1泛化

介绍:
泛化(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系

(1)继承
介绍:
继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。
表示方法:
继承使用空心三角形+实线表示。
示例:
鸟类继承抽象类动物,它指定了子类如何特化父类的所有特征和行为。例如:鸟是动物的一种,企鹅、鸭、大雁是鸟的一种。

(2)实现
介绍:
实现表示一个class类实现interface接口(可以是多个)的功能。
表示方法:

1)矩形表示法
使用空心三角形+虚线表示
比如:大雁需要飞行,就要实现飞()接口

  • 顶端有<<interface>>
  • 第一行:接口名称
  • 第二行:接口方法

矩形表示法

第二种,棒棒糖表示法

  • 圆圈旁为接口名称
  • 接口方法在实现类中出现

棒棒糖表示法

2.2依赖

介绍:
对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
表示方法:
依赖关系用虚线箭头表示。
示例:
动物依赖氧气和水。调用新陈代谢方法需要氧气类与水类的实例作为参数

2.3关联

介绍:
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。
表示方法:
关联关系用实线箭头表示。
示例:
企鹅需要‘知道’气候的变化,需要‘了解’气候规律。当一个类‘知道’另一个类时,可以用关联。

2.4聚合

介绍:
表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期
表示方法:
聚合关系用空心的菱形+实线箭头表示。
示例:
每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。当大雁死去后大雁群并不会消失,两个对象生命周期不同。

2.5组合

介绍:
组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样
表示方法:
组合关系用实心的菱形+实线箭头表示,还可以使用连线两端的数字表示某一端有几个实例。
示例:
鸟和翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。

总结来说,只有充分了解这些图形的要素组成及要素间关系,我们才能有效地运用UML图来便捷沟通、开发,而不是用糟糕的UML图来添堵。


http://chatgpt.dhexx.cn/article/CZ8cujtH.shtml

相关文章

UML详细讲解

本文是搜集整理学习使用&#xff0c;信息来源&#xff1a;gd_沐辰 - 博客园 (cnblogs.com) 1.UML概述 1.1.什么是UML 统一建模语言&#xff08;UML&#xff09;是一种通用的可视化建模语言&#xff0c;可以用来描述、可视化、构造和文档化软件密集型系统的各种工件。 UML是…

什么是UML,UML类图

1.什么是UML&#xff1f; UML是统一建模语言&#xff0c;是一种可视化的面向对象建模语言&#xff0c;是一种用来对真实世界物理进行建模的标准标记&#xff0c;用图形方式表现典型的面向对象系统的整个结构。它的作用域不局限于支持面向对象的分析与设计&#xff0c;还支持从需…

什么是uml?

相信你可能建立过以木块为基础的建筑模型&#xff0c;建立过解决实际问题的数学模型&#xff0c;学过一个系统的物理模型&#xff0c;听说过UML建模&#xff0c;但是什么是UML呢&#xff1f; 学习了几天的UML&#xff0c;昨天师傅大体问了我UML是什么&#xff0c;由什么构成&am…

[UML 扫盲]什么是UML?

文章目录 一、UML 是什么&#xff1f;二、UML 与 面向对象三、UML 基本要素四、UML 常见图 概述 UML 是统一建模语言&#xff08;Unified Modeling Language&#xff09;的缩写。UML 提供了标准通用的图形化设计语言&#xff0c;使得在构建计算机应用时&#xff0c;开发团队的成…

大数据学习(3)

大数据学习&#xff08;3&#xff09; 1 Hive-SQL-DML语句1.1 Hive SQL Load 加载数据语句1.1.1 Load功能1.1.2 Load语法规则1.1.3 Load 语法实验1.1.3.1 Load Data From Local FS1.1.3.2 Load Data From HDFS1.1.3.3 Overwrite选项 1.2 Hive SQL Insert 插入数据语句1.3 Hive …

如何学习大数据分析

上面有很多关于BOT的信息&#xff1a;这并不是嗡嗡作响。归根结底&#xff0c;BINO数据已经成为每个行业的驱动力&#xff0c;这充分说明了利用大数据分析的最大优势。但是&#xff0c;仅B此字不只是因为我们知道而改变了业务。更重要的是&#xff0c;大数据分析分析系一直是开…

大数据分析怎么学习

大数据分析从业虽然有难度&#xff0c;但大数据分析岗的薪酬高、发展潜力好&#xff0c;很多人们想转行做大数据分析&#xff0c;朝着大数据分析方向去发展。那么&#xff0c;大数据分析怎么学习?学习哪些内容呢&#xff1f; 第一&#xff0c;可视化分析&#xff0c;事实上&am…

大数据学习路线,如何学习大数据?

声明&#xff1a;本文转至http://blog.csdn.net/yuexianchang/article/details/52468291 1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力&#xff1a; 熟练使用Linux&#xff0c;熟练安装Linux上的软件&#xff0c;了解熟悉负载均衡、高可靠等集群相关概念&#xff…

机器学习-大数据

模式识别 性能好&#xff0c;算法&#xff0c;经验 实际和模型的差距太大

大数据学习(1)-大数据概述

文章目录 目录大数据产生背景大数据概念大数据影响大数据应用大数据关键技术大数据产业大数据&#xff0c;云计算&#xff0c;物联网关系云计算物联网大数据&#xff0c;物联网&#xff0c;云计算三者之间联系 目录 大数据产生背景 三次信息化浪潮 根据IBM前首席执行官郭士纳…

2021年全新大数据学习路线图,(含入门到精通项目学习免费教程哦)

大数据教程&#xff0c;大数据学习&#xff0c;大数据学习路线图&#xff0c; 今天就给大家分享2021年全新的大数据学习教程哦&#xff01; 2021年黑马程序员全新的大数据学习路线图分享给大家&#xff0c;大家可以按照这个大纲来学习&#xff0c;自学也可哦&#xff01; 第一…

大数据——学习路线

学习大数据首先我们要学习Java语言和Linux操作系统&#xff0c;这两个是学习大数据的基础&#xff0c;学习的顺序不分前后。下面是大数据相关的技术 Hadoop 这是现在流行的大数据处理平台几乎已经成为大数据的代名词&#xff0c;所以这个是必学的。Hadoop里面包括几个组件HDF…

怎样进行大数据的入门级学习?

大数据在刚出来的时候&#xff0c;人们表现的非常乐观&#xff0c;以至于对它持有非常高的期望&#xff0c;和普遍的追捧。 不过只要有数据在&#xff0c;大数据就不会过时。随着上游的数据规模持续增长&#xff0c;大数据在未来一定会扮演重要角色。因此&#xff0c;市场需求…

当我说转行大数据工程师时,众人笑我太疯癫,直到四个月后......

【不要错过文末彩蛋】 申明&#xff1a; 本文旨在为【大数据自学者|大数据专业学生|工资低的程序员&#xff08;Java/Python等&#xff09;】提供一个从入门到入职的的大数据技术学习路径&#xff0c;不适合5年以上大数据工程师的进阶学习。 前言&#xff1a; 一、个人介绍 …

网络层协议(6)

文章目录 一、网络层二、网络层的功能三、IP数据包格式1.版本2.头部长度3.服务类型4.包裹总长5.重组标识6.标志7.段偏移量8.生存时间&#xff08;TTL&#xff09;9.协议代码10.首部检验和11.源地址12.目的地址13.可选字段14.数据部分 四、其他网络层协议1.ICMP协议2.ARP协议3.R…

网络层的各层协议

网络层的各层协议 目录 一、IP数据包格式 二、Icmp协议介绍 2.1 ICMP协议 2.2 ICMP协议的封装 三&#xff0e;ARP协议介绍 3.1 什么是ARP协议 3.2 ping命令 3.3 TRACERRT命令 3.4ARP协议工作原理 四、ARP攻击原理 一、IP数据包格式 协议字段 IP数据包格式&#xf…

网络层协议------IP协议

这里写目录标题 IP协议基本概念协议头格式网段划分特殊的ip地址私网ip地址和公网ip地址ip地址的数量限制路由 IP协议 IP协议&#xff1a;其实就是TCP/IP协议中对于网络层的一个协议&#xff08;注意IP协议是TCP/IP协议族中最为核心的协议&#xff0c;因为对于上层的数据&#…

网络协议层

1.osi七层模型以及每层的都是干什么的 七层模型分别为&#xff1a;物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 物理层的主要功能是&#xff1a;利用传输介质为数据链路层提供物理连接&#xff0c;实现比特流的透明传输。 数据链路层&…

网络协议:网络层传输层

目录 网络层 网络层首部 网络层首部--总长度 网络层首部--标识、标志 网络层首部--片偏移 网络层首部--生存时间 ping的几个用法 传输层 UDP UDP--数据格式 UDP--检验和&#xff08;Checksum&#xff09; 端口 网络层 网络层数据包&#xff08;IP数据包&#xff0c;Pac…

第四讲:网络层协议

文章目录 一、网络层功能二、IP数据包的格式1、IP数据包格式2、各字段说明 三、ICMP协议1、ICMP封装与格式2、ping命令2.1 ping命令的各种用法 四、ARP协议1、什么是ARP协议&#xff1f;2、ARP协议是如何工作的&#xff1f;3、ARP工作原理4、windows当中如何查看ARP缓存表5、AR…