UML类图

在这里插入图片描述

UML简介

Unified Modeling Language,UML 统一建模语言,用于设计软件的可视化建模语言。

UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。

类图简介

类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。

  • 在软件工程中,类图是一种静态的结构图,描述了系统的类的集合,类的属性和类之间的关系,可以简化了人们对系统的理解;

  • 类图是系统分析和设计阶段的重要产物,是系统编码和测试的重要模型。

可见类图可以帮助我们快速了解类之间的关系~ 学习UML类图还是非常有必要的。

画图工具

画图工具可以使用startUml这个软件,当然若是不想下载软件就想简单画点类图processOn这个在线网站基本能够满足我们的需求。

类图表示

1、类

在这里插入图片描述

类使用如上图形表示:

  • 最上层写类名,中间层为类的属性,最下层为类的方法。
  • 属性的定义很简单修饰符,属性名,属性类型,默认值(可无)
  • 方法的定义很简单修饰符,方法名,方法参数(可无),方法返回值类型(可无)
  • 上述的+,-,#分别表示public private protected 类型
2、接口

在这里插入图片描述
接口使用如上图形表示:

  • 和类的用法差不多 😁 只是接口名多了个Interface关键字。

类与类之间的关系

1、继承与实现关系

回顾下:

  • java的类之间存在单继承,多实现关系。
  • java的接口之间存在着多继承关系(接口之间不能实现,只能继承)

(1)继承关系

在这里插入图片描述

继承关系使用如上图形表示:

  • 二者之间使用带空心三角箭头实线来表示

(2)实现关系

在这里插入图片描述

实现关系使用如上图形表示:

  • 二者之间使用带空心三角箭头虚线来表示
2、关联关系

关联关系就是一个类A持有一个类B的引用。也即类B作为类A的成员变量。

(1)普通关联

在这里插入图片描述
注意箭头画法。两者之间连线上还可以描述文字。

(2)聚合

聚合更强调类与类之间存在个体与整体的关系。其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。

如下图,学校倒闭了不影响老师存在。

在这里插入图片描述

(3)合成

合成聚合也强调类与类之间存在个体与整体的关系。在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。例如,人和头的关系,没有了人,头也就不存在了。

在这里插入图片描述

如上Head与Teacher之间存在合成关系。头属于人的一部分。

3、依赖关系

依赖关系是一个类的方法持有另一个类的引用。

在这里插入图片描述

The end

### UML绘制方法及学习资料 UML是一种静态结构,用于描述系统中的、接口以及它们之间的关系。以下是关于UML的绘制方法、示例和学习资料的相关信息。 #### 一、UML的基本构成 UML、接口、关联关系等元素组成。每个通常以矩形框表示,分为三个部分:名、属性和操作(方法)。的核心在于展示之间的关系,如继承、实现、关联、聚合和组合等[^1]。 ```plaintext +------------------+ | 名 | +------------------+ | 属性1: 型 | | 属性2: 型 | +------------------+ | + 方法1(参数): 返回值型 | | + 方法2(参数): 返回值型 | +------------------+ ``` #### 二、UML的绘制规则 1. **的表示方式** 用矩形框表示,其中包含名、属性和方法。名位于顶部,属性位于中间,方法位于底部。例如: ```plaintext +------------------+ | Person | +------------------+ | - name: String | | - age: int | +------------------+ | + setName(String) | | + getName(): String | +------------------+ ``` 2. **关系的表示方式** - **继承**:使用空心箭头指向父,表示子继承父。 - **实现**:使用空心箭头指向接口,表示实现了该接口。 - **关联**:使用直线连接两个,表示两者之间存在某种关系。 - **聚合**:使用空心菱形连接,表示整体与部分的关系,但部分可以独立存在。 - **组合**:使用实心菱形连接,表示整体与部分的关系,且部分不能独立存在[^3]。 #### 三、UML绘制工具 绘制UML可以使用多种工具,以下是一些常用的在线和离线工具: - **在线工具**:ProcessOn、Lucidchart、Draw.io 等。这些工具支持实时协作,适合团队合作。 - **离线工具**:Visual Paradigm、StarUML、Enterprise Architect 等。这些工具功能强大,适合专业开发人员使用。 #### 四、UML示例 以下是一个简单的UML示例,展示了 `Person` 和 `Student` 之间的继承关系: ```plaintext +------------------+ +------------------+ | Student | | Person | +------------------+ +------------------+ | - studentId: int | | - name: String | +------------------+ | - age: int | | + getStudentId() |<|--|> | + setName(String) | | + setStudentId(int) | | + getName(): String | +------------------+ +------------------+ ``` #### 五、学习资料推荐 1. **书籍**:《UML精粹》(Martin Fowler 著),这是一本经典的UML入门书籍,内容详尽且易于理解。 2. **在线教程**:可以在 ProcessOn 的官方文档中找到详细的绘制指南。 3. **视频课程**:B站或 YouTube 上有许多关于 UML 的免费教程,适合初学者快速上手[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值