UML类图及类与类之间的关系总结(详解)
1.类图各部分构成

属性名和方法名前的 -,+,#,~代表其可访问性
1>"-" 代表"private" 表示私有权限,仅允许本类访问,任何其他类或子类都无法访问
2>"+" 代表"pubic" 表示公有权限,允许任意类访问该属性或方法
3>"#" 代表"protected" 意味着属性和方法收到保护,只能由同一个类或子类访问
4>"~" 代表"package/default" 意味着只要在同一个包下,任何类都可以访问
2.类与类之间的关系
1>继承(泛化):空心三角,实线。继承父类由"+,#"修饰的属性和方法,同时自己本身可以新增特有的属性和方法

说明:Cat继承了Animal,Cat为子类,Animal即为父类
2>依赖:虚线箭头。 A的属性变化可能影响到B,此时可存在B依赖A的关系
3>关联:实线。
i. 双向关联,无箭头实线
ii.单向关联,有箭头实线
4>聚合: 空心菱形实线。部分聚合为整体,部分可随时离开整体独立出来。

说明:引擎(Engine)聚合为汽车(Car),但是引擎可单独脱离汽车
5>组合:实心菱形实线。部分组合为整体,不可脱离整体。

说明:卧室和厨房组合为房间,卧室和厨房不能脱离房间单独存在,并且房屋被拆,卧室和厨房都会将无法存在
6>实现:空心三角虚线指向接口。
3.对比总结
实线 vs 虚线
- 实线:结构性关系(关联、聚合、组合、泛化)
- 虚线:临时性关系(依赖、实现)
箭头含义
- 有箭头:表示方向性(知道的方向)
- 无箭头:表示双向知道
关联的特殊形式
- 聚合:空心菱形,表示"has-a"关系,部分可独立存在
- 组合:实心菱形,表示"contains-a"关系,部分依赖整体
UML类图及类与类之间的关系总结(详解)的更多相关文章
- 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解)
分类: Oracle(9) 版权声明:转载请注明出处 JmilkFan_范桂飓:http://blog.csdn.net/jmilk 目录(?)[+] 目录 目录 软件环境 前言 安装Oracle监听 ...
- 如何理解VB窗体中的scale类属性及width height属性之间的关系
如何理解VB窗体中的scale类属性及width height属性之间的关系 VB中的SCALEHIEGT,SCALEWIDTH,与窗体中的WIDTH,HEIGHT的区别及关系是许多VB初学者难以理解 ...
- 第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解
第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解 一. 引言 上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类 ...
- 路飞前台全局css 全局配置文件,安装axios,安装vue-cookies,安装elementui,安装bootstrap和jq,后台主页模块表设计,后台主页模块轮播图接口,录入数据,跨域问题详解
目录 路飞前台全局css 全局配置文件,安装axios,安装vue-cookies,安装elementui,安装bootstrap和jq,后台主页模块表设计,后台主页模块轮播图接口,录入数据,跨域问题 ...
- UML类图(二)--------类与类之间的关系之依赖,继承,接口与实现关系
依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系.大多数情况下,依赖关系体现在某个类的方法使用另一个类 ...
- UML类图(二)----------类与类之间的关系之关联(聚合与组合)
类与类之间的关系: 在软件系统中,类并不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供了不同的表示方式. 1. 关联关系 关联(Association)关系是类与类之 ...
- 【设计模式】UML类图及Java的类之间的关系
UML类图展示 设计模式中的对象关系 关联和依赖的对比 依赖关系 虚线箭头 依赖是a类成员方法中有b类的属性,动物新陈代谢方法中有水和空气的属性,只有调这个方法的时候,才可能临时用一下 关联关系 实线 ...
- UML类图中最重要的几种类关系及其表示
阅读UML图最常见到的类与类之间的关系有如下几种: 1.依赖关系 依赖关系是指一个类在计算时,应用了“另一个类”类型的参数,这种关系是偶然.临时.弱的. UML类图中,依赖关系用带单箭头的虚线表示,即 ...
- 类图和对象图教程-类(Class)、接口(Interface)、协作(collaboration)、依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)以及实现关系(Realization)
类图的概念 (转) 一.概述 类图(Class Diagram)是描述类.接口.协作以及它们之间关系的图,用来显示系统中各个类的静态结构.类图是定义其他图的基础,在类图基础上,可以使用状态图.协作图. ...
- 第8.5节 Python类中的__new__方法和构造方法__init__关系深入剖析:执行顺序及参数关系案例详解
上节介绍了__new__()方法这个比构造方法还重要的方法的语法,本节通过案例来详细剖析__new__()方法的细节以及它与构造方法之间的关系. 一. 案例说明 本节以圆Cir类为例来说明,为了 ...
随机推荐
- 1. ur3+robotiq ft sensor+robotiq 2f 140配置rviz仿真环境-
原文地址: ur3+robotiq ft sensor+robotiq 2f 140配置rviz仿真环境 ur3+robotiq ft sensor+robotiq 2f 140配置rviz仿真环境搭 ...
- ios开发者相关的几个apple邮箱
转载请注明出处!!! AppReview@apple.com -应用在提交后(处于"审核中"),应用和应用内购的状态-状态更新通知--与开发者遭拒和影响审核时间相关的信息-应用遭拒 ...
- Xcode8设置启动页
转载请注明出处!!! 在现如今几乎每个APP都有自己的启动页,启动页的设置方法是怎样的.1.方法一在xcode7之后新建工程中都会有一个LaunchScreen.storyboard的文件.这个是系统 ...
- 精品战略与长期主义,如何为OPPO赢得市场
过去几年,是智能手机发展的一个盘整期,整个产业创新乏力,市场增长停滞.元旦前后,各大厂商集中发布新款,手机迎来集中热销.战报显示,该轮大促对市场的激活作用十分可观,或将开启新一轮的增长. OPPO近几 ...
- 对Python序列切片操作的理解之二
序列切片操作缺省值理解 s[i] 索引,返回序列s索引为i的元素.(1)i是0基序号(正序)或负数序号(逆序),开头索引为0(或者 -len(s) ).末尾索引为 len(s) - 1(或者 -1) ...
- git如何新建(修改)分支
1.新建分支 前提是已经将新建的仓库克隆到本地. 这里使用命令行方式说明: 1)切换到主分支(若没有分支则跳过此步) git checkout master 2)创建并切换到新分支 假设新建分支dev ...
- Mac端查词翻译工作流:基于欧路词典与Raycast
目录 Mac端欧路词典配置 Raycast整合欧路词典 效果演示 快速查词 翻译 OCR 下载Easy Dictionary插件 软件配置 Mac端欧路词典配置 默认读者已经有一定的词典配置经验,下面 ...
- 垃圾分类管理系统+SpringBoot + Vue (前后端分离)
大家好,今天给大家带来一个超级简单的 垃圾分类管理系统.大家可用学习下系统的设计和源码风格. 视频演示 https://githubs.xyz/show/a0d3ccc6-5e0c-4be8-b56e ...
- Ef Core花里胡哨系列(1) SafeDelete、ReadOnly、Audit 安全删除、只读、审计等
Ef Core花里胡哨系列(1) SafeDelete.ReadOnly.Audit 安全删除.只读.审计等 在软件设计中,软删除是一种常见的数据管理技术,用于标记和隐藏被删除的数据,而不是永久地从数 ...
- 计算机硬件之CPU浅谈
背景 当企业因投产上线新应用平台或拓展硬件资源而采购服务器时,需要考虑其基础设施性能,CPU就是其中一个硬件指标. CPU性能指标 CPU性能指标一般需关注 型号.主频MHz.CPU物理个数physi ...