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类图及类与类之间的关系总结(详解)的更多相关文章

  1. 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解)

    分类: Oracle(9) 版权声明:转载请注明出处 JmilkFan_范桂飓:http://blog.csdn.net/jmilk 目录(?)[+] 目录 目录 软件环境 前言 安装Oracle监听 ...

  2. 如何理解VB窗体中的scale类属性及width height属性之间的关系

    如何理解VB窗体中的scale类属性及width height属性之间的关系 VB中的SCALEHIEGT,SCALEWIDTH,与窗体中的WIDTH,HEIGHT的区别及关系是许多VB初学者难以理解 ...

  3. 第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解

    第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解 一.    引言 上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类 ...

  4. 路飞前台全局css 全局配置文件,安装axios,安装vue-cookies,安装elementui,安装bootstrap和jq,后台主页模块表设计,后台主页模块轮播图接口,录入数据,跨域问题详解

    目录 路飞前台全局css 全局配置文件,安装axios,安装vue-cookies,安装elementui,安装bootstrap和jq,后台主页模块表设计,后台主页模块轮播图接口,录入数据,跨域问题 ...

  5. UML类图(二)--------类与类之间的关系之依赖,继承,接口与实现关系

     依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系.大多数情况下,依赖关系体现在某个类的方法使用另一个类 ...

  6. UML类图(二)----------类与类之间的关系之关联(聚合与组合)

    类与类之间的关系: 在软件系统中,类并不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供了不同的表示方式.       1. 关联关系 关联(Association)关系是类与类之 ...

  7. 【设计模式】UML类图及Java的类之间的关系

    UML类图展示 设计模式中的对象关系 关联和依赖的对比 依赖关系 虚线箭头 依赖是a类成员方法中有b类的属性,动物新陈代谢方法中有水和空气的属性,只有调这个方法的时候,才可能临时用一下 关联关系 实线 ...

  8. UML类图中最重要的几种类关系及其表示

    阅读UML图最常见到的类与类之间的关系有如下几种: 1.依赖关系 依赖关系是指一个类在计算时,应用了“另一个类”类型的参数,这种关系是偶然.临时.弱的. UML类图中,依赖关系用带单箭头的虚线表示,即 ...

  9. 类图和对象图教程-类(Class)、接口(Interface)、协作(collaboration)、依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)以及实现关系(Realization)

    类图的概念 (转) 一.概述 类图(Class Diagram)是描述类.接口.协作以及它们之间关系的图,用来显示系统中各个类的静态结构.类图是定义其他图的基础,在类图基础上,可以使用状态图.协作图. ...

  10. 第8.5节 Python类中的__new__方法和构造方法__init__关系深入剖析:执行顺序及参数关系案例详解

    上节介绍了__new__()方法这个比构造方法还重要的方法的语法,本节通过案例来详细剖析__new__()方法的细节以及它与构造方法之间的关系. 一.    案例说明 本节以圆Cir类为例来说明,为了 ...

随机推荐

  1. 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仿真环境搭 ...

  2. ios开发者相关的几个apple邮箱

    转载请注明出处!!! AppReview@apple.com -应用在提交后(处于"审核中"),应用和应用内购的状态-状态更新通知--与开发者遭拒和影响审核时间相关的信息-应用遭拒 ...

  3. Xcode8设置启动页

    转载请注明出处!!! 在现如今几乎每个APP都有自己的启动页,启动页的设置方法是怎样的.1.方法一在xcode7之后新建工程中都会有一个LaunchScreen.storyboard的文件.这个是系统 ...

  4. 精品战略与长期主义,如何为OPPO赢得市场

    过去几年,是智能手机发展的一个盘整期,整个产业创新乏力,市场增长停滞.元旦前后,各大厂商集中发布新款,手机迎来集中热销.战报显示,该轮大促对市场的激活作用十分可观,或将开启新一轮的增长. OPPO近几 ...

  5. 对Python序列切片操作的理解之二

    序列切片操作缺省值理解 s[i] 索引,返回序列s索引为i的元素.(1)i是0基序号(正序)或负数序号(逆序),开头索引为0(或者 -len(s) ).末尾索引为 len(s) - 1(或者 -1) ...

  6. git如何新建(修改)分支

    1.新建分支 前提是已经将新建的仓库克隆到本地. 这里使用命令行方式说明: 1)切换到主分支(若没有分支则跳过此步) git checkout master 2)创建并切换到新分支 假设新建分支dev ...

  7. Mac端查词翻译工作流:基于欧路词典与Raycast

    目录 Mac端欧路词典配置 Raycast整合欧路词典 效果演示 快速查词 翻译 OCR 下载Easy Dictionary插件 软件配置 Mac端欧路词典配置 默认读者已经有一定的词典配置经验,下面 ...

  8. 垃圾分类管理系统+SpringBoot + Vue (前后端分离)

    大家好,今天给大家带来一个超级简单的 垃圾分类管理系统.大家可用学习下系统的设计和源码风格. 视频演示 https://githubs.xyz/show/a0d3ccc6-5e0c-4be8-b56e ...

  9. Ef Core花里胡哨系列(1) SafeDelete、ReadOnly、Audit 安全删除、只读、审计等

    Ef Core花里胡哨系列(1) SafeDelete.ReadOnly.Audit 安全删除.只读.审计等 在软件设计中,软删除是一种常见的数据管理技术,用于标记和隐藏被删除的数据,而不是永久地从数 ...

  10. 计算机硬件之CPU浅谈

    背景 当企业因投产上线新应用平台或拓展硬件资源而采购服务器时,需要考虑其基础设施性能,CPU就是其中一个硬件指标. CPU性能指标 CPU性能指标一般需关注 型号.主频MHz.CPU物理个数physi ...