当前位置: 首页 > news >正文

UML类图学习

UML类图学习

  • UML类图是描述类之间的关系
  • 概念
    • 1.类(Class):使用三层矩形框表示
    • 2.接口(interface):使用两层矩形框表示,与类图主要区别在于顶端有<<interface>>显示
    • 3、继承类(extends):用空心三角形+实线来表示
    • 4、实现接口(implements):用空心三角形+虚线来表示
    • 5、关联(Association):用实线箭头来表示,例如:燕子与气候
    • 6、聚合(Aggregation):用空心的菱形+实线箭头来表示
    • 7、组合:用实心棱形+实现箭头来表示
    • 8、依赖(Dependency) :用虚线箭头来表示,例如:动物与氧气
    • 9、注意:关联关系、聚合关系与组合关系都是可以有基数的,比如一只鸟有两个翅膀,一个类也可以有无数个实例,则用 n 来表示
  • 总结

UML类图是描述类之间的关系

概念

1.类(Class):使用三层矩形框表示

第一层表示类名(斜体表示抽象类)
第二层表示该类属性和字段
第三层表示该方法
注意:属性、字段或方法前面+表示Public -表示Private #表示protected,如果是静态的可以在前面加上static。

抽象类:
在这里插入图片描述

普通类:
在这里插入图片描述

2.接口(interface):使用两层矩形框表示,与类图主要区别在于顶端有<>显示

第一层表示接口名称。
第二层表示接口方法。

在这里插入图片描述

还有一种方法是棒棒糖表示法

在这里插入图片描述

3、继承类(extends):用空心三角形+实线来表示

在这里插入图片描述

4、实现接口(implements):用空心三角形+虚线来表示

在这里插入图片描述

5、关联(Association):用实线箭头来表示,例如:燕子与气候

在燕子的类中持有气候属性
在这里插入图片描述

6、聚合(Aggregation):用空心的菱形+实线箭头来表示

聚合:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,例如:公司和员工
在这里插入图片描述

在这里插入图片描述

7、组合:用实心棱形+实现箭头来表示

组合:是一种强的‘拥有’关系,体现了严格的部分与整体关系,部分和整体的生命周期一样。

在这里插入图片描述

8、依赖(Dependency) :用虚线箭头来表示,例如:动物与氧气

比如动物依赖洋气和水
在这里插入图片描述
在这里插入图片描述

9、注意:关联关系、聚合关系与组合关系都是可以有基数的,比如一只鸟有两个翅膀,一个类也可以有无数个实例,则用 n 来表示

总结

看懂了上述,UML类图基本是可以看明白,如果想深入研究 双向关联
可以研究一下。

相关文章:

UML类图学习

UML类图学习 UML类图是描述类之间的关系概念1.类(Class)&#xff1a;使用三层矩形框表示2.接口(interface)&#xff1a;使用两层矩形框表示&#xff0c;与类图主要区别在于顶端有<<interface>>显示3、继承类&#xff08;extends&#xff09;&#xff1a;用空心三角…...

死锁面试题详解

什么是死锁&#xff1f; 死锁是指两个或多个进程在执行过程中&#xff0c;因争夺资源而造成的一种相互等待的现象&#xff0c;如果没有外力干涉&#xff0c;这些进程将永远无法继续执行 死锁通常发生在多个进程试图同时访问同一资源而无法获取的情况下&#xff0c;例如&#…...

【rust/bevy】使用points构造ConvexMesh

目录 说在前面问题提出Rapier具体实现参考 说在前面 操作系统&#xff1a;win11rust版本&#xff1a;rustc 1.77.0-nightlybevy版本&#xff1a;0.12github&#xff1a;这里 问题提出 在three.js中&#xff0c;可以通过使用ConvexGeometry从给定的三维点集合生成凸包(Convex Hu…...

【C语言】string.h——主要函数总结

string.h主要定义了字符串处理函数和内存操作函数。 字符串处理函数 strlen() 功能&#xff1a;strlen()函数返回字符串的字节长度&#xff0c;不包括末尾的空字符\0。 函数原型&#xff1a;size_t strlen(const char* s); 返回值&#xff1a;返回的是size_t类型的无符号整…...

如何在前端优化中减少页面加载时间?

在前端优化中&#xff0c;减少页面加载时间是至关重要的&#xff0c;因为快速加载的页面可以提高用户体验&#xff0c;减少跳出率&#xff0c;从而提升网站的整体性能。本文将介绍一些实用的前端优化技巧&#xff0c;以帮助您减少页面加载时间。 一、优化图片 图片是页面加载…...

Typecho后台无法登录显示503 service unavailable问题及处理

一、Typecho 我的博客地址&#xff1a;https://www.aomanhao.top 使用老薛主机动态Typecho博客框架handsome主题的搭配&#xff0c;文章内容可以异地网页更新&#xff0c;可以听后台背景音乐&#xff0c;很好的满足我的痛点需求&#xff0c;博客部署在云端服务器访问响应较快…...

Python入门(一)

anaconda安装 官网&#xff1a;https://www.anaconda.com下载 jupyter lab 简介&#xff1a; 包含了Jupyter Notebook所有功能。 JupyterLab作为一种基于web的集成开发环境&#xff0c;你可以使用它编写notebook&#xff0c;操作终端&#xff0c;编辑markdown文本&#xf…...

云表企业级无代码案例-自主开发ERP管理系统

痛点 我是一名企业经营者&#xff0c;同时也是信息化建设的坚定倡导者。凭借管理专业背景&#xff0c;我深知经营数据对于企业的至关重要性。如何高效搜集、精准分析经营数据&#xff0c;并将其转化为决策依据&#xff0c;直接关乎企业的生死存亡。太多因盲目决策而倒闭的企业…...

Qt —— 编译Qt5版本QFTP库,并实现连接服务、获取列表、上传、下载、删除文件等操作(附源码、附基于Qt5编译好的QFTP库)

示例效果1 示例效果2 介绍 QFTP是Qt4的库,Qt5改用了QNetworkAccessManager来代替。但是Qt5提供的QNetworkAccessManager仅支持FTP的上传和下载,所以只能将QFTP库编译为Qt5的库来进行调用。 QFTP在Github的下载地址:https://github.com/qt/qtftp 客户端源码生成的release结果…...

碰到es6的...拓展运算符

第一次碰到&#xff0c;哥们啥也不会 let searchForm ref({}) let formData ref({}) const initArgs async() > { args.value props.init_data formData .value { ...searchForm.value,//把值都带过来 workWhere : args.value.workWhere, statusArgs : args.value.sta…...

JDK8新特性详解

☆* o(≧▽≦)o *☆嗨~我是小奥&#x1f379; &#x1f4c4;&#x1f4c4;&#x1f4c4;个人博客&#xff1a;小奥的博客 &#x1f4c4;&#x1f4c4;&#x1f4c4;CSDN&#xff1a;个人CSDN &#x1f4d9;&#x1f4d9;&#x1f4d9;Github&#xff1a;传送门 &#x1f4c5;&a…...

ELK+Filebeat 部署实验

Filebeat是轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat&#xff0c;并指定目录与日志格式&#xff0c;Filebeat 就能快速收集数据&#xff0c;并发送给 logstash 进行解析&#xff0c;或是直接发给 Elasticsearch 存储&#xff0c;性能上相比运行…...

利用wireshark lua扩展能力增加自定义解析器[注释解读版]

前言 Wireshark提供了lua扩展能力&#xff0c;可以定制一些Listner和Dissector&#xff0c;用于一些自定义的使用场景&#xff0c;例如: lua插件适应场景Listener报文统计、内容抽取等Dissector协议树解析&#xff0c;在wireshark中立等可看 已在以前的文档中积累了对于List…...

GPT-5不叫GPT-5?下一代模型会有哪些新功能?

OpenAI首席执行官奥特曼在上周三达沃斯论坛接受媒体采访时表示&#xff0c;他现在的首要任务就是推出下一代大模型&#xff0c;这款模型不一定会命名GPT-5。虽然GPT-5的商标早已经注册。 如果GPT-4目前解决了人类任务的10%&#xff0c;GPT-5应该是15%或者20%。 OpenAI从去年开…...

2024.1.23(347.前k个高频元素)

2024.1.23(347.前k个高频元素) 思路 这道题目主要涉及到如下三块内容&#xff1a; 1.要统计元素出现频率 2.对频率排序 3.找出前K个高频元素 首先统计元素出现的频率&#xff0c;这一类的问题可以使用map来进行统计。 然后是对频率进行排序&#xff0c;这里我们可以使用一种…...

MySQL对数据库的操作

前腰&#xff1a;本节只是的数据库本身进行增删查改、备份、恢复等操作&#xff0c;而不是对数据库内的数据表做操作&#xff0c;还请您区分好这两点。 1.创建数据库 # 创建数据库的语法形式 CREATE DATABASE [IF NOT EXISTS] database_name [create_specification]# 大写的是…...

解决Unity WebGLInput插件全屏输入的问题

unity webgl的中文输入插件WebglInput在全屏的时候会出现无法输入中文/输入的英文会字母出现在光标后面/什么都输入不了的等无法正常使用的情况。 插件官网作者给出了unity的2017&#xff0c;2018&#xff0c;2019版本的全屏输入解决方法。 最新插件下载地址&#xff1a;http…...

Android14实战:调整A2DP音量曲线(五十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…...

vector讲解

在学习玩string后我们开始学习vector&#xff0c;本篇博客将对vector进行简单的介绍&#xff0c;还会对vector一些常用的函数进行讲解 vector的介绍 实际上vector就是一个数组的数据结构&#xff0c;但是vector是由C编写而成的&#xff0c;他和数组也有本质上的区别&#xff…...

nvm 配置淘宝镜像失效,以及安装node后 npm-v 无效

win11 nvm版本 1.1.4 和1.1.7和1.1.12&#xff08;目前最新版本24年 一月二十三日&#xff09; 以上nvm版本都会出现一下问题&#xff0c; 从https://github.com/coreybutler/nvm-windows/releases 下载nvm安装包如下图 傻瓜式安装后&#xff0c;不用去配置环境变量&#…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...