1.继承关系(Inheritance)

继承指的是一个类(子类、子接口)继承另外的一个类(父类、父接口)的功能,通过关键字 extends 明确标识

UML图

继承用一条带空心三角箭头的实线表示,从子类(子接口)指向父类(父接口)

2.实现关系(Realization/Implementation)

实现指的是一个 class 类实现 interface 接口(可以是多个)的功能,通过关键字 implements 明确标识

public interface ProgrammingLanguage {}class Java implements ProgrammingLanguage {}class Python implements ProgrammingLanguage {}

UML图

实现用一条带空心三角箭头的虚线表示

3.关联关系(Association)

表示不同类对象之间有关联,这是一种静态关系,与运行过程的状态无关,在最开始就可以确定。可以用 1 对 1、多对 1、多对多这种关联关系来表示。

public class School {List<Student> studentList;
}class Student {}

UML图

在关联的两端可以标注关联双方的角色和多重性标记。

4.依赖关系(Dependency)

和关联关系不同的是,依赖关系是在运行过程中起作用的。

A 类和 B 类是依赖关系主要有三种形式:

A 类是 B 类中某方法的局部变量;
A 类是 B 类方法当中的一个参数;
A 类向 B 类发送消息,从而影响 B 类发生变化;

public class Bank {public static volatile BigDecimal allAccountBalance = new BigDecimal("1000000000");public static void setAllAccountBalance(BigDecimal allAccountBalance) {Bank.allAccountBalance = allAccountBalance;}
}class BankCard {void deposit(BigDecimal money){Bank.setAllAccountBalance(Bank.allAccountBalance.add(money));}void cashWithdrawal(BigDecimal money){Bank.setAllAccountBalance(Bank.allAccountBalance.subtract(money));}
}

UML图

依赖关系用由类 A 指向类 B 的带箭头虚线表示:

5.聚合关系(Aggregation)

聚合是关联关系的一种特例,它体现的是整体与部分的关系,即 has-a 的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。例如电脑和鼠标键盘的关系,电脑作为整体,而鼠标键盘作为电脑的非必要组成部分,两者生命周期互不干扰。

public class Computer {}class Mouse {}class Keyboard {}

UML图

聚合关系以实线空心菱形表示

6.组合关系(Composition)

和聚合不同,组合中整体和部分是强依赖的,整体不存在了部分也不存在了。比如公司和部门,公司没了部门就不存在了。但是公司和员工之间属于聚合关系,因为公司没了员工还在。

public class Company {}class DepartmentA {}
class DepartmentB {}
class DepartmentC {}

UML图

组合关系用实心菱形表示

【Java】Java绘制UML图相关推荐

  1. Java集合类学习UML图——ArrayList

    Java集合类学习UML图--ArrayList ArrayList类的定义 public class ArrayList<E> extends AbstractList<E> ...

  2. MarkdownPad安装以及绘制 UML 图

    要在本地编辑和查看markdown 文件,我选择了安装MarkdownPad 2. 从官网下载了MarkdownPad 2,安装后打开md文件,出现了This view has crashed的渲染错 ...

  3. eclipse使用ModelGoon插件自动生成java类的UML图

    1.ModelGoon介绍 ModelGoon 是一个 Eclipse插件,能将Eclipse中现有的java类生成类图,可以进行Java 包的依赖分析,基于UML图进行模型设计,以及逆向工程(即从已 ...

  4. Markdown绘制UML图

    下面介绍一种可以在Markdown中使用的绘制UML工具 -- PlantUML,以及渲染引擎 Gravizo 1. PlantUML简介 可以登陆 PlantUML官网 看一下,里面有支持的UML类 ...

  5. 安卓手机绘制uml图_UML图是用什么软件画的?

    用例图是一类用于表现某系统的功能需求的图表.用例图是从用户的角度去呈现系统功能,并且明确各系统功能的操作着.绘制用例图经常会用到用例与执行者两种元素.用例位于某系统功能的范围内,用例的执行者则在方框外 ...

  6. 在VS Code上使用draw.io绘制UML图、架构图、原型图、网络拓扑图、组织结构图等,PeocessOn再见

    简介 流程图和UML图估计是程序员偶尔需要的东西,又是话画一个流程图可以理清程序逻辑,之前用windows自带的画图来画流程图,对齐和再次编辑不太好处理,后来室友推荐了processon Proces ...

  7. js设计模式与绘制UML图 - 打车的面试题

    题干描述 打车时,你可以打快车和专车 无论什么车,都有车牌号和车辆名称 打不同的车价格不同,快车每公里 1 元,专车每公里 2 元 打车时,你要启动行程并显示车辆信息 结束行程,显示价格(假定行驶了 ...

  8. 使用Markdown绘制UML图

    UML图是一种交互图,它显示了进程如何相互操作以及以什么顺序运行,更多详情 UML示例 #mermaid-svg-6gUBKncz7oM7Coy2 {font-family:"trebuch ...

  9. visio画卷积神经网络示意图_visio模型绘制(如何使用visio2013如何绘制UML图)

    在visio中迭代模型图怎么制作 visio里的数据库的ER图于课本上的不一样,因此只要使用相同的图形就可以了. 我一般是使用基本流程图(文件-形状-流程图-基本流程图)中的进程(矩形)和判定(菱形) ...

最新文章

  1. 杨强入选加拿大皇家科学院院士!此外还有3名华人学者入选
  2. redis RedisTemplate实现分布式锁
  3. 第2章 构建环境——安装Oracle 9i
  4. 使用VMware VSphere WebService SDK进行开发 (一)——基本信息阐述
  5. php实战https请求,用php发https请求
  6. 2017—2018 实验报告:实验一
  7. JavaFX UI控件教程(五)之Radio Button
  8. CocoaAsyncSocket 套接字
  9. mysql 异步_MySQL -- 异步I/O
  10. 数据库高可用实战案例-------架构优化之清爽一夏
  11. try catch 处理异常太烦人了,我已经不用了
  12. Shiro教程及案例
  13. 汽车行业(车厂)常见英文缩写及其中文含义(不断完善中)
  14. 六类双绞线排序和信息插座排序
  15. “浏览器设置从上次停下的地方继续,但是电脑重启打开后还是主页”问题的解决办法
  16. tart-dfs.sh 和start-all.sh的区别
  17. 图片视频去水印工具HitPaw Watermark Remover Mac
  18. 免费人工智能图像生成(PlaygroundAI)
  19. 概率模型——轧钢中的浪费、报童的诀窍
  20. 计算机视觉 英文论文,数字图像处理 外文翻译 外文文献 英文文献 数字图像处理方法研究.doc...

热门文章

  1. 博览——万维网的发明者—蒂姆•伯纳斯-李 (一)
  2. redis设计与实现 笔记(一)
  3. 如何实现ArrayList的线程安全
  4. 最短路(hdu2544,floyd最短路)
  5. 智能硬件---智能硬件产品经理需要具备的知识
  6. linux堆内存管理
  7. Vivado 2020.1 开放下载,中文资料随贴奉送
  8. UCSD异常检测数据集
  9. TCL作价5000万美元收购美国Novatel Wireless公司MIFI业务
  10. Numpy中reshape函数、reshape(1,-1)的含义(浅显易懂,源码实例)