UML 类图的画法

news2024/11/27 18:49:37

1.类图的画法

整体是个矩形,第一层类名,第二层属性,第三层方法。

  • +  :public
  • -   :  private
  • #  :  protected
  • 空格: 默认的default

 对应的类写法。

public class Student {
    public String name;
    public Integer age;
    protected Integer cardId;
    Integer mark;


    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

抽象类

对比类,就是第1层类名第3层 方法名斜体表示。

 对应类。

接口

顶层多了interface字段,其余好像没啥区别了。

 包

里面就是对应包的名字。

对应java写法。

package com.zgxt.demo.domain;

public class Student {
  
}

 2.类图的关系

如果说,类图为了表现java中的类,那么类图的关系就代表java中中类、接口之间的关系。

 泛化关系

泛化就是Java中的继承

 表示符号,就是一个横线 + 空心三角

 对应的类关系图。

 

 实现关系

实现就是java中的实现

 表示方法,一条虚线 + 空心三角

 依赖关系

如果一个类失去一个类代码无法编译,那么说这个类依赖于这个类。

具体表现为:成员变量、局部变量、方法形参,方法返回值

 表示方法全虚线箭头

 对应的类关系。

// 小孩
class Child{
    private Hand hand; // 依赖关系:成员变量也成为关联

    public void riding(Foot foot){ // 方法形参
        Bike bike = new Bike(hand,foot); // 局部变量
    }
}

关联关系

2个类依赖关系且是依赖,并且是依赖中的成员变量,则存在关联关系。

而且再细分,感觉跟MySQL中的外键约束,表设计有异曲同工之妙。

MySQL FOREIGN KEY 外键约束 (w3schools.cn)

 关联对应表示图。

单向关联

 双向关联

 聚合

是在依赖的及基础上(成员变量),但是和关联表现的层级不同,关联表示同层级之间,而聚合表示整体和部分层级之间。

另外: 整体和部分之间可以相互独立存在。

如: 一个公司由老板和员工组成。那么公司和员工关系就是聚合。而老板和员工的关系就是关联。

 表示图形:空心菱形 + 箭头。

代码:一个Computer类需要Boss类和Employee类,聚合。

而Employee类中的businessTrip[出差]() 方法需要Boss的同意,这就是关联。

// 聚合和关联
class Computer{
    private Boss boss; // 聚合
    private Employee employee; // 聚合
}

class Boss{

}

class Employee{
    private Boss boss; // 关联
    public boolean businessTrip(){
        // boss同意 return true
        // boss不同意 return false
    }
}

对应的图形 

组合

区别与聚合,组合的整体和部分之间不能独立存在。

如: 人由手、脚、头等身体部位组成,但是手离开人和人离开手都不能做相应的方法。

表示图形: 实心菱形 + 实线箭头。

这个我就不画了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/875475.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubernetes集群(k8s)之安装部署Calico 网络

目录 安装部署Calico 网络 (一)环境准备 (二)部署docker环境 (三)部署kubernetes集群 (四)部署Calico网络插件 安装部署Calico 网络 (一)环境准备 IP地…

混淆矩阵、F1score详解

混淆矩阵(Confusion Matrix) TP(True Positives):真正例,预测为正例而且实际上也是正例; FP(False Positives):假正例,预测为正例然而实际上却是负例; FN&…

九五从零开始的运维之路(其三十一)

文章目录 前言一、什么是计划任务1.一次性任务2.周期性任务(一)在/etc/crontab文件中写入计划任务(二)使用crontab命令编辑计划任务 二、用户提权1.什么是用户提权2.su与su -3.sudo提权 总结 前言 本篇将简述的内容:L…

1+X 综合布线系统安装与维护职业技能等级证书实训室建设方案

一、1X 综合布线系统安装与维护职业技能等级证书建设方案系统概述 "1X 综合布线系统安装与维护职业技能等级证书系统"是中国职业教育改革的一项举措,旨在为综合布线系统安装与维护领域的从业人员提供职业技能评价和认证的体系。 该证书系统采用了"…

浪涌保护器中SPD防雷模块的主要应用方案

浪涌保护器(Surge Protective Device,SPD)是一种用于限制瞬态过电压和导引泄放电涌电流的非线性防护器件,用以保护耐压水平低的电器或电子系统免遭雷击及雷击电磁脉冲或操作过电压的损害。SPD可以将过电压泄放到地线或限制过电压到…

如何高效地进行事件降噪

在事件处理方面,一般我们会遇到两个痛点,一个是告警事件太多,被过度打扰,另一个是重要告警疏漏,无法闭环处理。 告警太多的常见原因 最常见的原因,是告警规则设置得不合理。比如很多规则触发了告警之后&a…

5.内置构造函数

在JavaScript中最主要的数据类型有6种: 1.基本数据类型: 字符串、数值、布尔、undefined、 null 2.引用类型:对象 但是,我们会发现有些特殊情况: //普通字符串 const str andy console.1og(str.length) // 4其实字符串、数值、布尔、等基本类型也都有…

【MySQL--->表的操作】

文章目录 [TOC](文章目录) 一、创建表二、查看表三、修改表四、删除表drop table 表名; ![在这里插入图片描述](https://img-blog.csdnimg.cn/15227b8335364d41bd01b4b4dd83ee55.png) 一、创建表 语句格式:create table 表名(列名 类型,…)字符集 校验规则 存储引擎;字符集和校…

一盏茶的时间,带你轻松上手Pinia

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📚 前言 📘 创建 Pinia 📘 Option Store 📘 Pinia 提供多种选项配…

JavaEE——网络编程(UDP套接字编程)

文章目录 一、简单理解Socket 套接字二、UDP 数据报套接字编程三、编写简单的 UDP 版本服务器客户端1. 编写 UDP 版本的回显服务器回显服务器整体代码罗列 2. 编写 UDP 版本的回显客户端回显客户端整体代码罗列 四、总结与代码运行结果解释 一、简单理解Socket 套接字 概念&am…

实践-传统深度学习

简介与安装 2 训练自己的数据集整体流程3 数据加载与预处理4 搭建网络模型5 学习率对结果的影响6 Drop-out操作7 权重初始化方法对比8 初始化标准差对结果的影响9 正则化对结果的影响10 加载模型进行测试 TensorFlow:每一步都需要自己做。 Keras:做起来更…

Redis_缓存2_缓存删除和淘汰策略

14.5 缓存数据的删除和替换 14.5.1 过期数据 可以使用ttl查看key的状态。已过期的数据,redis并未马上删除。优先去执行读写数据操作,删除操作延后执行。 14.5.2 删除策略 redis中每一个value对应一个内存地址,在expires,一个内…

关于海外应用ASO优化的一些热知识

应用程序市场挤满了人,我们不能依靠运气来帮助应用程序在全球应用市场上被发现,其中大约有 500 万个应用程序争夺相同的客户。ASO是应用营销活动的重要组成部分,其目的是提高应用程序在Google Play Store和Apple App Store中的可见度。 1、为…

怎么截取视频制成GIF?教你简单的GIF制作方法

怎么将一段视频截取片段制作成GIF动图呢?很多小伙伴在看到一段视频中的搞笑片段,想要将其制作成GIF表情包来在社交平台上发送、交流,那样会非常有趣,GIF动图能够很好的表达我们的情绪,因此该怎么制作呢?教大…

安利5个:在线帮助文档协同与团队知识库管理工具!

在线帮助文档协同与团队知识库管理工具是帮助团队共享和管理知识的重要工具。下面是我推荐的五个工具,并对它们的优点和缺点进行了简要描述。其中,我特别推荐Baklib这个工具。 Confluence: 优点:Confluence是Atlassian公司的产品&#xff0…

OLED透明屏批发:解读未来显示技术的创新与机遇

在数字化时代,OLED透明屏作为一种创新的显示技术,吸引了广泛的关注和应用。本文将深入探讨OLED透明屏的优势和应用领域,分析其在批发市场中的需求和机遇。 一、OLED透明屏的优势和应用领域 OLED透明屏的定义和原理: OLED透明屏采…

KU Leuven TU Berlin 推出“RobBERT”,一款荷兰索塔 BERT

荷兰语是大约24万人的第一语言,也是近5万人的第二语言,是继英语和德语之后第三大日耳曼语言。来自比利时鲁汶大学和柏林工业大学的一组研究人员最近推出了基于荷兰RoBERTa的语言模型RobBERT。 谷歌的BERT(来自Transformers的B idirectional …

搞什么副业可以月入过万?

现在的社会发展非常快,因此出现了许多非常有用而充满娱乐性的兼职职位。这些兼职职位可以让你放松自己的身心,同时还能获得高额报酬。下面兼职网将提供一些正规的兼职职位,可以助你月入数万。 第一种:网络直播主播 网络直播现在非…

redis — 基于Spring Boot实现redis延迟队列

1. 业务场景 延时队列场景在我们日常业务开发中经常遇到,它是一种特殊类型的消息队列,它允许把消息发送到队列中,但不立即投递给消费者,而是在一定时间后再将消息投递给消费者。延迟队列的常见使用场景有以下几种: 在…

Linux目录结构(快速了解)

linux目录结构 核心 1.Linux一切皆文件 2.只有一个顶级目录,而windows分C盘、D盘等 目录结构 目录含义(与windows进行比对) Linux含义windows/bin所有用户可用的基本命令存放的位置windows无固定的命令存放目录/bootlinux系统启动的时候需要…