0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

类在面向对象程序设计中的几种关系

strongerHuang 来源:嵌入式情报局 作者:情报小哥 2022-09-16 09:07 次阅读

1、类之间的关系

类在面向对象程序设计中是一个非常重要的概念,是一系列具有相同属性和方法的对象抽象,那么弄明白类之间的主要关系对于面向对象程序设计建模起到了指导意义。

类之间关系主要分为如下几种:

5bb0500a-3557-11ed-ba43-dac502259ad0.png

下面对类的这几种关系进行详细描述:

2、实现关系

类之间的实现关系主要是用于描述接口与类或者组件之间的关系,该接口是操作和方法的集合,提供给类使用。

这样不同的类通过统一的接口以自己的方式来进行实现。

5bee5ad0-3557-11ed-ba43-dac502259ad0.png

C++语言中体现实现关系主要通过virtual虚函数来表达,而接口是通过纯虚函数来表达。

3、泛化关系

泛化其实也叫做继承关系,在学习C++编程语言中应该是对其非常了解了。

5c33479e-3557-11ed-ba43-dac502259ad0.png

比如子类继承父类的相关属性和方法。

4、依赖关系

依赖关系更多的一种使用关系,比如某人要去上班,那么他需要依赖于一种交通工具,可以是公交车、可以是同事的车等等。

在程序中通常一个类是另外一个类的参数或者返回值等等。

5c8283ae-3557-11ed-ba43-dac502259ad0.png

5、关联关系

关联算是复杂一点的关系形式,主要有一般关联、聚合和组合。关联关系的两个类更多的是处于一种平等的位置,而非从属关系。

通常在C++中一个类作为另外一个类的成员变量,这种叫单向关联,如果我中有你,你中有我,则是一种双向关联等等。

5cb91fa4-3557-11ed-ba43-dac502259ad0.png

聚合关系是一种整体与部分的关系,但是整体与部分可以分开独立存在,部分可以添加到整体,也可从整体中移出。

5cda2de8-3557-11ed-ba43-dac502259ad0.png

而组合关系也是一种整体与部分的关系,但其关联性更强,两者不可分开,且具有统一的生命周期,同生死共存亡。

5d009dde-3557-11ed-ba43-dac502259ad0.png

举个例子,电脑的可以使用不同品牌的内存条,那么其可以看成聚合的关系,而一个人与嘴巴的关系,这种关联性更强的属于组合关系,属于生命一体。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    10

    文章

    1945

    浏览量

    34731
  • C++语言
    +关注

    关注

    0

    文章

    147

    浏览量

    6990

原文标题:面向对象类之间的几种关系

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    第5章 MATLAB程序设计.ppt

    第5章 MATLAB程序设计
    发表于 10-24 16:40 0次下载

    《DNK210使用指南 -CanMV版 V1.0》第十八章 machine.Timer实验

    :18.1 machine.Timer介绍18.2 硬件设计18.3 程序设计18.4 运行验证 18.1 machine.Timer介绍machine.Timer是machi
    发表于 10-16 09:21

    《DNK210使用指南 -CanMV版 V1.0》第十七章 machine.WDT实验

    学习到machine模块WDT的使用。本章分为如下几个小节:17.1 machine.WDT介绍17.2 硬件设计17.3 程序设计17.4 运行验证 17.1 machine
    发表于 10-15 14:32

    java子类可以继承父的什么

    Java是一种面向对象的编程语言,它支持继承的概念。继承是面向对象编程的三大特性之一,它允许一个(称为子类或派生
    的头像 发表于 08-20 11:02 1182次阅读

    无法PCB中选择要复制、删除或修改的特定对象

    如果PCB存在无法复制、删除或修改的特定对象,则原因可能是多重过滤/锁定程序阻止了无意选择和修改对象的操作。
    的头像 发表于 07-26 09:14 2909次阅读
    无法<b class='flag-5'>在</b>PCB中选择要复制、删除或修改的特定<b class='flag-5'>对象</b>

    最简单的C程序设计

    电子发烧友网站提供《最简单的C程序设计.pptx》资料免费下载
    发表于 05-28 16:41 10次下载

    算法-程序设计的灵魂

    电子发烧友网站提供《算法-程序设计的灵魂.pptx》资料免费下载
    发表于 05-28 16:39 3次下载

    程序设计基础教程

    电子发烧友网站提供《程序设计基础教程.pptx》资料免费下载
    发表于 05-28 16:37 1次下载

    三种Mock测试方案的应用与实践总结

    面向对象程序设计,模拟对象(英语:mock object,也译作模仿
    的头像 发表于 04-28 17:50 1484次阅读
    三种Mock测试方案的应用与实践总结

    鸿蒙语言TypeScript学习第16天:【

    TypeScript 支持面向对象的所有特性,比如 、接口等。
    的头像 发表于 04-15 09:29 1035次阅读
    鸿蒙语言TypeScript学习第16天:【<b class='flag-5'>类</b>】

    C程序可用的存储有哪些?

    register 存储用于定义存储寄存器而不是 RAM 的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个词),且不能对它应用一元的 '&' 运
    发表于 03-15 12:32 378次阅读

    java实现多线程的几种方式

    Java实现多线程的几种方式 多线程是指程序包含了两个或以上的线程,每个线程都可以并行执行不同的任务或操作。Java的多线程可以提高程序
    的头像 发表于 03-14 16:55 703次阅读

    vb运行时错误429不能创建对象

    系统已经安装了对象所依赖的组件或库。如果缺少这些组件或库,就会导致不能创建对象的错误。解决这个问题的方法是安装所需的组件或库。 对象
    的头像 发表于 01-09 11:07 2326次阅读

    基于TouchGFX的智能手表设计 —硬件驱动层程序设计

    电子发烧友网站提供《基于TouchGFX的智能手表设计 —硬件驱动层程序设计.pdf》资料免费下载
    发表于 01-05 11:20 1次下载

    labview程序框图怎么整体缩小

    LabVIEW,可以通过以下几种方法来整体缩小程序框图。本文将详细介绍这些方法,并提供示例和步骤,以帮助您理解和实施这些技巧。 使用Scale Objects命令: LabVIEW
    的头像 发表于 12-28 14:41 1.3w次阅读