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

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

3天内不再提示

面向对象类之间主要的几种关系简析

strongerHuang 来源:嵌入式情报局 2023-02-17 09:03 次阅读

嵌入式开发虽然平时C语言用的比较多,但面向对象的思维应该是每一位嵌入式软件工程师必备的知识。

之前给大家分享过用C语言实现面向对象的内容,也分享过单片机C++点灯的文章。

今天就再给大家拓展一下面向对象类之间的几种关系。

1、类之间的关系

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

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

2d9ec21e-ae5b-11ed-bfe3-dac502259ad0.png

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

2、实现关系

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

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

2dbb253a-ae5b-11ed-bfe3-dac502259ad0.png

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

3、泛化关系

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

2dcb267e-ae5b-11ed-bfe3-dac502259ad0.png

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

4、依赖关系

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

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

2ddc33ce-ae5b-11ed-bfe3-dac502259ad0.png

5、关联关系

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

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

2dee5b26-ae5b-11ed-bfe3-dac502259ad0.png

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

2e02cbf6-ae5b-11ed-bfe3-dac502259ad0.png

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

2e1d479c-ae5b-11ed-bfe3-dac502259ad0.png

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






审核编辑:刘清

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

    关注

    0

    文章

    23

    浏览量

    12198
  • 编程语言
    +关注

    关注

    9

    文章

    1879

    浏览量

    33227
  • C++语言
    +关注

    关注

    0

    文章

    146

    浏览量

    6878

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

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

收藏 人收藏

    评论

    相关推荐

    利用LabVIEW工程库实现面向对象编程

    ,编写出来程序会越来越显得杂乱无章,使得程序的调试、维护、和升级都变得非常困难。 解决这一问题的途径就是引入更加抽象化的面向对象的编程方法[2]。通过构造的方法,把不同模块之间的数据
    发表于 12-06 12:41

    3分钟看懂Python面向对象

    Python虽然是解释型语言,但从设计之初就已经是一门面向对象的语言,对于Python来说一切皆为对象。正因为如此,在Python中创建一个对象
    发表于 06-08 14:20

    对象关系的阻抗失配的含义了解

    也对这个问题深感头痛。“阻抗失配”产生的原因是因为对象模型与关系模型之间缺乏固有的亲合力。“阻抗失配”所带来的问题包括:的层次关系必须绑定
    发表于 06-04 06:47

    LabVIEW面向对象的ActorFramework(1)

    ` 本帖最后由 bollworm 于 2020-2-10 14:54 编辑 本系列文章主要阐述以下几个问题:(1)什么是面向对象编程?(2)为什么要学习面向编程?(3)LabVIE
    发表于 02-10 14:09

    谈谈面向对象编程

    工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多优秀特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但
    发表于 09-08 07:47

    面向对象编程语言的特点

    工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多优秀特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但
    发表于 09-08 07:44

    面向对象程序的主要结构特点是什么

    相比现在的开源FTP有啥优势?面向对象程序的主要结构特点是什么?
    发表于 09-22 08:37

    单片机应用系统面向对象的接口电路有哪几种

    什么是单片机?什么是单片机系统?单片机应用系统面向对象的接口电路有哪几种
    发表于 11-02 09:35

    面向对象编程介绍

    目录一、面向对象编程介绍1.面向过程编程2.函数式编程3.面向对象编程二.面向
    发表于 12-13 07:22

    解读rtt的c的面向对象对象创建及其启动初始化流程

    解读rtt的IO设备框架。先澄清下概念,这些概念是进行新的定义或者表达名词在本文中的意思,防止有二义。然后介绍各类关系,IO设备框架对应的。再接着用伪代码举出了面向对象语言的
    发表于 07-05 11:01

    对象/关系映射中的完整性及关系约束检查

    【摘要】针对面向对象设计与关系数据库设计之间的不匹配问题,介绍了一种映射方法O/R Mapping。在使用对象模型时,常常通过
    发表于 03-15 14:01 13次下载

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

    类在面向对象程序设计中是一个非常重要的概念,是一系列具有相同属性和方法的对象抽象,那么弄明白类之间主要
    的头像 发表于 09-16 09:07 1047次阅读

    嵌入式C语言面向对象编程应用及优势

    既然面向对象是一种编程思想,而编程语言只是一种工具,那么,思想与工具之间就不存在一种强耦合的关系,C++可以面向
    发表于 11-10 12:00 1126次阅读
    嵌入式C语言<b class='flag-5'>面向</b><b class='flag-5'>对象</b>编程应用及优势

    面向过程与面向对象的区别

    说起面向对象,大家可能会想到其他的,但是此对象非彼对象哈哈,不必惊慌,也特别好搞定。 在听到面向
    的头像 发表于 02-15 11:10 2196次阅读
    <b class='flag-5'>面向</b>过程与<b class='flag-5'>面向</b><b class='flag-5'>对象</b>的区别

    利用UML(图)表示类之间的6种关系

    在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强
    的头像 发表于 05-05 10:18 1113次阅读
    利用UML(图)表示类<b class='flag-5'>之间</b>的6种<b class='flag-5'>关系</b>