UML类图中的类图、接口图、关联、聚合、依赖、组合概念的解释

news/2024/10/30 16:22:05/

文章目录

  • UML类图
    • 依赖和关联的主要区别

UML类图

在这里插入图片描述
:类有三层结构

  • 第一层:类的名字
  • 第二层:类的属性
  • 第三层:类的方法

接口:接口跟类相似,不过多了一个<<interface>>来表示它是一个接口

  • 第一层:接口名称
  • 第二层:接口方法

关联:表示不同类之间的结构联系,表示一个类对象可以引用另一个类对象,或者说两个类对象之间存在某种固定的连接。关联关系是一种长期的、稳定的关系,会影响类的整体结构。关联关系用实线表示,没有箭头。以下例子表示一个关联关系,“企鹅”知道“气候”。

class Penguin {// 企鹅private Climate climate;// 气候
}

聚合:表示一个种弱拥有关系,雁群包含大雁,但是大雁数组不是雁群的一部分,大雁是独立存在的,不会随着雁群的消失而消失,它们的生命周期不一样

class WideGooseAggregate{// 雁群private WideGoos[] arrayWideGoose;// 大雁
}

组合:或者叫合成,是一种强拥有关系,翅膀是鸟的一部分,当鸟消失的时候,翅膀也会消失。体现了严格的部分和整体的关系,部分和整体的生命周期一样。

class Bird{// 鸟private Wing wing;// 翅膀public Bird(){wing = new Wing();}
}

依赖:依赖关系表示一个类在某个方法中使用了另一个类的对象,或者说一个类依赖于另一个类的对象才能完成自己的功能。依赖是一种临时性关系,通常是一种短暂的、使用期限有限的关系,不会改变类的整体结构。依赖关系用虚线箭头表示,箭头指向被依赖的类。比如,动物进行新陈代谢依赖(使用到了)氧气和水。

abstract class  Animal{// 动物/*Metabolism:新陈代谢Oxygen:氧气Water:水*/public Metabolism (Oxygen oxygen,Water water){}
}

依赖和关联的主要区别

  • 依赖是一种使用关系,强调的是一个类对象在运行期间使用了另一个类对象,而关联则是一种结构关系,强调的是两个类对象之间的固定连接。
  • 依赖关系是短暂的、临时的,关联关系是长期的、稳定的。
  • 依赖关系用虚线箭头表示,关联关系用实线表示,没有箭头。

http://www.ppmy.cn/news/28243.html

相关文章

消失的数字(每日一题)

目录 一、题目描述 二、题目分析 2.1 方法一 2.1.1 思路 2.1.2 代码 2.2 方法二 2.2.1 思路 2.2.2 代码 2.3 方法三 2.3.1 思路 2.3.2 代码 三、完整代码 一、题目描述 oj链接&#xff1a;https://leetcode.cn/problems/missing-number-lcci 数组nums包含从0到n的…

操作系统权限提升(十六)之绕过UAC提权-CVE-2019-1388 UAC提权

系列文章 操作系统权限提升(十二)之绕过UAC提权-Windows UAC概述 操作系统权限提升(十三)之绕过UAC提权-MSF和CS绕过UAC提权 操作系统权限提升(十四)之绕过UAC提权-基于白名单AutoElevate绕过UAC提权 操作系统权限提升(十五)之绕过UAC提权-基于白名单DLL劫持绕过UAC提权 注&a…

Maven的下载和安装【详细】

文章目录一、什么是Maven&#xff1f;二、Maven的安装与配置2.1下载Maven安装包2.2配置Maven环境变量2.3验证三、Idea配置Maven3.1配置 setting.xml文件3.2Idea配置Maven一、什么是Maven&#xff1f; Apache Maven是个项目管理和自动构建工具&#xff0c;基于项目对象模型&…

深入探究文件I/O

目录Linux 系统如何管理文件静态文件与inode文件打开时的状态返回错误处理与errnostrerror 函数perror 函数exit、_exit、_Exit_exit()和_Exit()函数exit()函数空洞文件概念实验测试O_APPEND 和O_TRUNC 标志O_TRUNC 标志O_APPEND 标志多次打开同一个文件验证一些现象多次打开同…

Liunx(狂神课堂笔记)

一.常用命令 1. cd 切换目录 cd ./* 当前目录cd /* 绝对路径cd .. 返回上一级目录cd ~ 回到当前目录pwd …

【Python工具篇】Anaconda中安装python2和python3以及在pycharm中使用

背景&#xff1a;已经安装好anaconda、python3、pycharm&#xff0c;因为项目使用的是python2语法&#xff0c;所以需要在anaconda中安装python2&#xff0c;并在pycharm中使用&#xff0c;下面给出步骤。 1. 打开cmd或者是Anaconda Prompt。 下面是anaconda prompt. 2. 查…

Leetcode100-两数之和

参见官方题解 一、学到的知识 正面寻找两个数之和相加等于某个数&#xff0c;如 ab c&#xff0c;不如反过来寻找 a c - b 正面寻找需要两层 for 循环&#xff0c;把每个数都进行遍历&#xff0c;所以时间复杂度较高 反过来则可以通过维护一个 a 的集合&#xff0c;每次通过…

文件的打开关闭和顺序读写

目录 一、文件的打开与关闭 &#xff08;一&#xff09;文件指针 &#xff08;二&#xff09; 文件的打开和关闭 二、文件的顺序读写 &#xff08;一&#xff09;fputc 1. 介绍 2. 举例 &#xff08;二&#xff09;fgetc 1. 介绍 2. 举例1 3. 举例2 &#xff08;三&…