[UML] --- 类图

1 类图简介

类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法
类图中的“类”与面向对象面向对象面向对象语言中的“类”的概念是对应的,它用来描述系统中的有意义的概念,包括具体的概念、抽象的概念、实现方面的概念等,是对现实世界中的事物的抽象。
类图是其它图的基础。我们可以在类图的基础上,使用状态图、协作图、组件图和配置图等。
类图的主要作用有:
(1)对系统的词汇进行建模
(2)对简单的协作进行建模
(3)对逻辑数据库模式进行建模
类图主要由类、接口和各种关系组成。
关系主要包括泛化关系、依赖关系、关联关系和实现关系。

2 类图基本图

先看一个基本的类图:
在这里插入图片描述

2.1 类

三个格子从上至下分别表示:

  • 类名称(如果是接口,就使用斜体表示)
  • 类的特性(一般是类的字段和属性,可以没有)
  • 类的操作(一般是类的方法或行为)

访问权限:

  • “+”表示public
  • “-”表示private
  • “#”表示protected

其他关键字:

  • 下划线表示static
  • 斜体表示abstract

冒号(:)

  • 表示成员变量类型
  • 表示方法返回值

等号 (=)

  • 表示默认值

方法的参数表示与类成员变量表示方法完全相同

2.2 接口

在这里插入图片描述
接口的两种表现方式:

  • 圆圈,比较直观,不方便表示接口内的方法
  • 名字上带有interface,方便表示接口方法

3 类之间的关系

3.1 泛化关系 (generalization)

[泛化关系] 泛化是继承关系的一种,子类继承父类的所有行为和属性,子类可以新增新的功能或者重写父类功能。
[箭头指向] 带三角箭头的实线,箭头指向父类
[代码表现] 最典型的就是extend
在这里插入图片描述

3.2 实现关系(realization)

[实现关系] 是一种类与接口的关系,表示类是接口所有特征和行为的实现。
[箭头指向] 带三角箭头的虚线,箭头指向接口或者是直线连接圆圈
[代码表现] 最典型的就是implements
在这里插入图片描述

3.3 关联关系 (association)

[关联关系] 是一种拥有的关系,它使一个类知道另一个类的属性和方法。它体现的两个类中一种强依赖关系,比如我和我的朋友,这种关系比依赖更强,不存在依赖关系中的偶然性,关系也不是临时的,一般是长期性的。

关联关系分为单向关联和双向关联:
单向关联表现为:类 A 当中使用了 类 B,其中类 B 是作为类 A 的成员变量。
双向关联表现为: 类 A 当中使用类 B 作为成员变量,同时类 B 中也使用了类 A 作为成员变量

[箭头指向] 带普通箭头的实心线,箭头指向被拥有者
[代码表现] 成员变量
在这里插入图片描述

3.4 聚合关系 (Aggregation)

[聚合关系] 聚合关系是关联关系的一种,耦合度强于关联。是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以单独存在。
[箭头指向] 带空心菱形的实心线,菱形指向整体
[代码表现] 成员变量
在这里插入图片描述

3.5 组合关系 (composition)

[组合关系] 整体与部分的关系,但部分不能离开整体而单独存在
[箭头指向] 带实心菱形的实心线,菱形指向整体
[代码表现] 成员变量
在这里插入图片描述

3.6 依赖关系 (dependency)

[依赖关系] 是一种使用的关系,即一个类的实现需要另一个类的协助,所以尽量不要使用双向的互助依赖。
[箭头指向] 带虚线的箭头
[代码表现] 最典型的就是import
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UML 类图各符号含义速查

链接:https://pan.baidu.com/s/1RePYipe_4hnW_EtCbD-r9Q 提取码:0000 概述 类图 类名 访问修饰符 变量名 : 返回类型(例: Username : String) 访问修饰符 方法名 () : 返回类型(例: getUserna…

快速识别UML类图

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition)&#xf…

小马识途分享创建品牌百科的流程和技巧

大家知道百度百科是人人可参与协作的网络百科全书,无论是创建词条、编辑现有词条,都可以亲手为百度百科作出贡献。虽然理论上百度百科是可以人人创建的,但并不是创建后马上就可以得到展示的,需要通过百度百科的审核机制。所以&…

在线类图各种UML图分享

好工具一定要分享给最好的朋友,ProcessOn助您和好友一起高效办公! https://www.processon.com/i/5a37774de4b0dce99f032667

UML图:类图 --详细介绍

类图的概念 描述类、接口及它们之间关系的图,显示系统中各个类的静态结构 类图的元素 类 面向对象系统组织结构的核心对一组具有相同属性、操作、关系和语义的对象的抽象包括名称部分(Name)、属性部分(Attribute)…

UML-认识六种箭头,轻松读懂UML图

进行系统设计时,UML是一种常见的面向对象结构设计方式,里面的各种箭头表示经常会把人弄糊涂,如果不能正确理解,实现阶段就会出大问题,失之毫厘,谬以千里,下面带着大家认识下6种常用箭头。 1. 泛…

一文学会UML类图

1.关系图解 2.类图详解 1.类 类图分三层: 第一层显示类的名称,如果是抽象类,则就 用斜体显示。 第二层是类的特性,通常就是字段和属性。 第三层是类 的 操 作 , 通 常 是 方 法 或 行 为 ,前面的符号表示…

[UML] 类图介绍 —— 程序员(灵魂画手)必备画图技能之一

统一建模语言(Unified Modeling Language,UML) 可分类成: 功能模型:从用户的角度展示系统的功能,包括用例图。对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础&#…

人工智能存在安全隐患?网络安全还得靠人来维护!

前言 继今年3月对ChatGPT进行安全审查后,意大利隐私监管机构表示将计划创建一个人工智能咨询委员会,对目前所有人工智能平台的数据搜集行为进行密切审查。 意大利数据保护机构 Garante 某高级官员表示,该委员会将加入目前由四人组成的隐私法…

短信接收流程分析

5,短信接收 如果有信息,RIL层会主动上报消息,RIL.java 的processUnsolicited方法会进行分发,根据网络制式,信息分为GSM和CDMA, 在此就以GSM信息为例论述, processUnsolicited方法对RIL_UNSOL_RESPONSE_NEW_SMS消息处理逻辑如下, 1,调用responseString方法从ril层读取消息内容…

Android 发送短信

一、发送短信的方法 使用 Intent 隐式调用系统短信应用进行发送 Uri uri Uri.parse("smsto:10086");Intent it new Intent(Intent.ACTION_SENDTO, uri);it.putExtra("sms_body", "Hello World!");startActivity(it); 使…

量化策略和level2行情数据股票市场需求大吗?

国内量化交易起步较晚,大约15年开始,20年开始爆发,21年量化私募规模飙升。由于容量过大,出现了一个头部量化私募中性策略导致大幅回调的问题。对于a股来说,量化交易仍然是一种相对较新的投资方式。自20年以来&#xff…

DFQ量化论文阅读

Data-Free Quantization Through Weight Equalization and Bias Correction 高通的训练后量化,提高性能 量化的不同水平 水平1:无需数据和反向传播 水平2:需要数据但不需要反向传播,例如IAO的校准 水平3:需要数据也…

【vn.py】量化策略历史回测(基于本地csv数据)

文章目录 写在前面获取数据csv数据导入历史回测写在后面REF 写在前面 策略研发之后,为了检测我们策略的效果,不可能一上来就接入实盘,所以需要的就是通过历史数据对我们的策略进行检验,也就是历史回测。vn.py也有推出历史回测的教…

「量化技术」Inv_Strategy 胜率76%的趋势反转策略

0 简介 Inv_Strategy为自研的趋势反转策略,能够有效识别到时间序列的趋势拐点,能辅助进行交易决策,规避风险、降低持仓成本。策略基于深度神经网络技术,利用前2个月的量价关系进行inference(推理)&#xf…

基于BigQuant的量化策略实现

文章目录 一、BigQuant的重要模块说明 1.回测模块 二、基于技术指标的策略实现 1.库函数导入与全局变量初始化 2.每日逻辑函数编写 策略1: MACD金叉MA多头买入 策略2: 利用MA指标进行择股 3.策略结果展示 策略1: MACD金叉MA多头买入 策略2: MA择股 三、基于QP优化的策略实现 …

【定量分析、量化金融与统计学】纵向数据分析(1)——截面数据、时间序列数据和纵向数据

一、截面数据(Cross-sectional Data) 截面数据就是固定时间来分析其他变量同一时间内的关系。 例如:比较2022年的全国20个省市的GDP与人口,那么我们就是限定了2022年,去找GDP和人口的可能关系。 再例如:…

gdp数据分析

1 概述 本文主要分析china,usa,king,japan,russia5个国家的gdp,时间从1800-2040,后面的数据为预测数据,不准确。 2 绘制折线图 import pandas as pd import matplotlib.pyplot as pltdata pd.read_csv("line_animation.csv") x…

Python量化策略入门1-如何利用聚宽(JoinQuant)下载金融数据

[TOC]量化策略入门1-如何利用聚宽(JoinQuant)下载金融数据 前言 量化策略入门系列文章是本人学习股票量化笔记,最终输出结果希望是一个可在本地运行的回测框架,包含数据获取,数据处理,策略回测等。 本文主要为了介绍如何利用聚…

金 融 量 化 分 析 • 外 篇 • 绘 制 行 情 数 据 数 据 图

文章目录 前言一、k 线 图 是 什 么 ?二、K 线 图 结 构(1) 影 线 和 实 体(2) 十 字 线 四、 双 均 线 策 略(一)、金叉(二)、死叉(三)、均 线 策…