类图(类之间的关系)

这篇具有很好参考价值的文章主要介绍了类图(类之间的关系)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.概述

        类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。在软件工程中,类图是一种静态的结构图,描述了系统的类的集合,类的属性和类之间的关系,可以简化了人们对系统的理解;类图是系统分析和设计阶段的重要产物,是系统编码和测试的重要模型。
类图(类之间的关系)

 1.类

       类是指具有相同属性、方法和关系的对象的抽象,它封装了数据和行为,是面向对象程序设计(OOP)的基础,具有封装性、继承性和多态性等三大特性。 在 UML 中,类使用包含类名、属性和操作且带有分隔线的矩形来表示。
(1) 类名(Name)是一个字符串,例如,Student。
(2) 属性(Attribute)是指类的特性,即类的成员变量。UML 按以下格式表示:
     [可见性]属性名:类型[=默认值]
例如:-name:String
注意:“可见性”表示该属性对类外的元素是否可见,包括公有(Public)、私有(Private)、受保护(Protected)和朋友(Friendly)4 种,在类图中分别用符号+、-、#、~表示。
(3) 操作(Operations)是类的任意一个实例对象都可以使用的行为,是类的成员方法。UML 按以下格式表示:
[可见性]名称(参数列表)[:返回类型]
例如:+display():void。
学生类的 UML 表示。
类图(类之间的关系)
2.接口
接口(Interface)是一种特殊的类,它具有类的结构但不可被实例化,只可以被子类实现。它包含抽象操作,但不包含属性。它描述了类或组件对外可见的动作。在 UML 中,接口使用一个带有名称的小圆圈来进行表示。
图形类接口的 UML 表示
类图(类之间的关系)

 二.类与类之间的关系

在软件系统中,类不是孤立存在的,类与类之间存在各种关系。根据类与类之间的耦合度从弱到强排列,UML 中的类图有以下几种关系:依赖关系、关联关系、聚合关系、组合关系、泛化关系和实现关系。其中泛化和实现的耦合度相等,它们是最强的。
1.依赖关系
     依赖关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。在代码中,某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。在 UML 类图中,依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。下图所示是人与手机的关系图,人通过手机的语音传送方法打电话。
类图(类之间的关系)

 2.关联关系

       关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生、师傅和徒弟等。关联关系是类与类之间最常用的一种关系,分为一般关联关系、聚合关系和组合关系。我们先介绍一般关联。 关联又可以分为单向关联,双向关联,自关联。
(1)单向关联
类图(类之间的关系)
在 UML 类图中单向关联用一个带箭头的实线表示。上图表示每个顾客都有一个地址,这通过让 Customer 类持有一个类型为 Address 的成员变量类实现。
(2)双向关联
类图(类之间的关系)

 从上图中我们很容易看出,所谓的双向关联就是双方各自持有对方类型的成员变量。

在 UML 类图中,双向关联用一个不带箭头的直线表示。上图中在 Customer 类中维护一个 List<Product>,表示一个顾客可以购买多个商品;在 Product 类中维护一个 Customer 类型的成员变量表示这个产品被哪个顾客所购买。

(3)自关联

类图(类之间的关系)

 自关联在 UML 类图中用一个带有箭头且指向自身的线表示。上图的意思就是 Node 类包含类型为 Node 的成员变量,也就是“自己包含自己”。

3.聚合关系

        聚合关系是关联关系的一种,是强关联关系,是整体和部分之间的关系。 聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。例如,学校与老师的关系,学校包含老师,但如果学校停办了,老师依然存在。
在 UML 类图中,聚合关系可以用带空心菱形的实线来表示,菱形指向整体。
下图所示是大学和教师的关系图:
类图(类之间的关系)

4.组合关系 

        组合表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系。在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。例如,头和嘴的关系,没有了头,嘴也就不存在了。在 UML 类图中,组合关系用带实心菱形的实线来表示,菱形指向整体。
下图所示是头和嘴的关系图:
类图(类之间的关系)

5.继承关系 

        继承关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系,是 is-a 的关系。 在 UML 类图中,继承关系用带空心三角箭头的实线来表示,箭头从子类指向父类。在代码实现时,使用面向对象的继承机制来实现继承关系。例如,
Student 类和 Teacher 类都是 Person 类的子类,其类图下图所示。
类图(类之间的关系)

6.实现关系 

        实现关系是接口与实现类之间的关系。在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有的抽象操作。 在 UML 类图中,实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口。例如,汽车和船实现了交通工具,其类图如下图所示。 
类图(类之间的关系)

 文章来源地址https://www.toymoban.com/news/detail-425518.html

到了这里,关于类图(类之间的关系)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA-AMBA协议、APB协议、AHB规范、AXI4协议规范概述及它们之间的关系

    笔记记录,AMBA协议、APB协议、AHB规范、AXI4协议规范概述,只是概述描述,具体详细的协议地址传输、数据传输等内容将在下一章节详细说明。 AMBA(Advanced Microcontroller Bus Architecture)是一种由ARM公司提出的处理器总线架构,它定义了处理器、内存和外设之间的通信标准 。

    2024年02月04日
    浏览(35)
  • Visual Studio 2022 右键单击项目没有出现View | View Class Diagram(Visual Studio 无法使用类设计器)

    当我们在Solution Explorer窗口右键单击项目时,快捷菜单中没有出现“查看”,或者出现了“查看”,但是“查看”里没有View Class Diagram。 首先你要确保你安装了类设计器。 其次就与你的项目有关了,类设计器不是所有项目都可以用滴。 类设计器在.NET Core项目中是无法使用的

    2024年02月11日
    浏览(59)
  • 类图的6种关系和golang应用

    概念 体现为局部变量、方法的形参,或者对静态方法的调用。 如:出行使用汽车,下雨打伞等 是一种弱关联关系,也是一种临时关系 类图示例 代码示例 输出 概念 体现为类的属性,golang中可以表现为结构体的成员 如:我的朋友(聚合),人和身体部位(组合),汽车和轮

    2024年02月14日
    浏览(41)
  • 设计模式7大原则+类图关系

    设计模式:一种对软件设计中普遍存在(反复出现)的各种问题所提出的解决方案。 设计模式的目的:设计模式可以帮助开发人员更好地组织代码结构,提高代码重用性、可读性、可维护性、耦合性、内聚性。 经典面试题: 七大设计原则核心思想 能够以类图的说明设计原则

    2024年02月20日
    浏览(50)
  • 【设计模式】二、UML 类图概述

    UML类图:类(对象)本身的组成和类(对象)之间的各种静态关系 依赖、泛化(继承)、实现、关联、聚合与组合 类中用到了对方,那么他们之间就存在依赖关系 类中用到了对方 如果是类的成员属性 如果是方法的返回类型 是方法接收的参数类型 方法中使用到 泛化关系实际上就

    2024年02月09日
    浏览(39)
  • PyTorch、OpenCV、YOLO间的关系

    PyTorch 是构建深度学习模型的框架,通常用于神经网络的训练,支持 GPU。预览版支持最新的CUDA12.1,如下图:  OpenCV 是一种专注图像处理、特征提取、物体检测、人脸识别的计算机视觉工具库。最新版OpenCV-4.7.0,如下图:   YOLO 是目标检测算法,是深度学习算法里的一种。

    2024年02月12日
    浏览(38)
  • LA@向量组间的表示关系

    向量组的相互表出 设有两个同维向量组 A : α 1 , ⋯   , α s A:alpha_1,cdots,alpha_s A : α 1 ​ , ⋯ , α s ​ , B : β 1 , ⋯   , β t {B}:beta_1,cdots,beta_{t} B : β 1 ​ , ⋯ , β t ​ 若 β 1 , ⋯   , β t beta_1,cdots,beta_t β 1 ​ , ⋯ , β t ​ 都可以被 A A A 线性表示,则称向量组 B {B} B 可以由

    2024年02月11日
    浏览(37)
  • NoSQL MongoDB Redis E-R图 UML类图概述

    NoSQL(Not only SQL)是对不同于传统的关系数据库的数据库管理系统的统称,即广义地来说可以把所有不是关系型数据库的数据库统称为NoSQL。 NoSQL 数据库专门构建用于特定的数据模型,并且具有灵活的架构来构建现代应用程序。NoSQL 数据库使用各种数据模型来访问和管理数据。这

    2024年02月10日
    浏览(43)
  • 概率论与数理统计——事件间的关系

    事件A发生必然导致事件B发生。 代数中经常用这种方法证明两个事件相等。 A与B至少有一个发生 A与B同时发生 无限可列个:能按某种规律能把他排成一个序列(实变函数的概念) (1)自然数,(2)整数,(3)有理数 n个事件中任意两个都互不相容则称为两两互不相容 若A

    2024年02月09日
    浏览(48)
  • OpenCV 笔记(6):像素间的基本关系——邻域、邻接、通路、连通、距离

    像素是图像的基本元素,像素与像素之间存在着某些联系,理解像素间的基本关系是数字图像处理的基础。常见的像素间的基本关系包括:邻域、邻接、通路、连通、距离。 邻域表示了像素之间的连接关系。 像素(x,y)的 邻域 ,是指与像素(x,y)对应的点的集合{(x+p,y+q)} ,其中

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包