问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java组合和聚合的区别和联系

发布网友 发布时间:2022-05-16 23:58

我来回答

1个回答

热心网友 时间:2023-09-15 12:20

聚合(Aggregation) 关系是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样,聚合关系也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分

组合(Composition) 关系是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分对象的生命周期,组合关系是不能共享的。代表整体的对象需要负责保持部分对象和存活,在一些情况下将负责代表部分的对象湮灭掉。代表整体的对象可以将代表部分的对象传递给另一个对象,由后者负责此对象的生命周期。换言之,代表部分的对象在每一个时刻只能与一个对象发生组合关系,由后者排他地负责生命周期。部分和整体的生命周期一样。

以上关系的耦合度依次增强(关于耦合度的概念将在以后具体讨论,这里可以暂时理解为当一个类发生变更时,对其他类造成的影响程度,影响越小则耦合度越弱,影响越大耦合度越强)。由定义我们已经知道,依赖关系实际上是一种比较弱的关联,聚合是一种比较强的关联,而组合则是一种更强的关联,所以笼统的来区分的话,实际上这四种关系、都是关联关系。 

聚合关系是是一种比较强的关联关系,java中一般使用成员变量形式实现。对象之间存在着整体与部分的关系。例如上例中 


class Driver {   
    //使用成员变量形式实现聚合关系   
    Car mycar;   
    public void drive(){   
        mycar.run();   
    }   
}

假如给上面代码赋予如下语义:车是一辆私家车,是司机财产的一部分。则相同的代码即表示聚合关系了。聚合关系一般使用setter方法给成员变量赋值。 

假如赋予如下语义:车是司机的必须有的财产,要想成为一个司机必须要先有辆车,车要是没了,司机也不想活了。而且司机要是不干司机了,这个车就砸了,别人谁也别想用。那就表示组合关系了。一般来说,为了表示组合关系,常常会使用构造方法来达到初始化的目的,例如上例中,加上一个以Car为参数的构造方法 public Driver(Car car){   
    mycar = car;   
}

所以,关联、聚合、组合只能配合语义,结合上下文才能够判断出来,而只给出一段代码让我们判断是关联,聚合,还是组合关系,则是无法判断的。

java 聚合和组合的区别?

由定义我们已经知道,依赖关系实际上是一种比较弱的关联,聚合是一种比较强的关联,而组合则是一种更强的关联,所以笼统的来区分的话,实际上这四种关系、都是关联关系。 聚合关系是是一种比较强的关联关系,java中一般使用成员变量形式实现。对象之间存在着整体与部分的关系。例如上例中 class Driver {...

java 聚合和组合的区别?

组合:部分与整体是与生俱来的,部分的存在依赖于整体。比如人与人的某个器官,人一出生,器官就在,人死亡,器官也就没了意义。聚合:你与你的电脑(或者其它物品),电脑是属于你的吧,但是你是一出生就拥有了电脑吗,电脑是某个厂商生产出来的,然后你买过来才成为了你的一部分。你死了以后,电...

JAVA中什么是对象间的组合和聚合,两者有什么区别?

聚合和组合只有概念上的区别,在Java中的代码实现上没有区别。聚合:指的是整体与部分的关系 组合:表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期,即整体对象不存在,部分对象也将不存在

UML中聚合和组合的区别

由定义我们已经知道,依赖关系实际上是一种比较弱的关联,聚合是一种比较强的关联,而组合则是一种更强的关联,所以笼统的来区分的话,实际上这四种关系、都是关联关系。 聚合关系是是一种比较强的关联关系,java中一般使用成员变量形式实现。对象之间存在着整体与部分的关系。例如上例中 class Driver {...

组合和聚合关系是不是都可以看作 has-a??

「聚合」呢,在代码上和普通「关联」是一样的,只能从「业务含义」上区分,比如:汽车对象和轮胎对象,轮胎是汽车的构成部分,但可以脱离汽车单独存在,可以简单理解为:“没有生命的对象”,局部零件聚合成整体,局部可以脱离整体单独存在,是 has a 的关系,汽车有n个轮胎。「组合」呢,同样的,在...

Java如何实现动态的组合, Thinking in Java 这本书中 说过 动态的组合...

聚合和组合都属于关联,很难区分,但是只要记住一点,区分它们就容易多了:处于聚合关系的两个类生命周期不同步,则是聚合关系;处于组合关系的两个类的生命周期同步;eg:聚合关系,当A创建的时候,B不一定创建;当A消亡时,B不一定消亡。class A{ private B;} class B{ ...} 组合关系,当创建一...

java web 中什么是聚合工程

聚合就是由很多节点合到一起的一个工程,但是每个节点不能独立存在。有一个相对的概念叫组合,组合也有很多节点组成,但是它的每个节点可以独立存在。

谁能给我讲讲java语言继承?

如果没有继承,我们就必须在不同的派生类中重复定义相同的部分。什么时候使用继承? 什么时候使用组合、聚合?继承使用来描述不同类之间相似性的概念,当两个类之间存在“是一种”关系时,才可以使用继承。 组合和聚合是用来描述“整体、部分”关系,当两个类之间存在这种关系时,使用组合、聚合。

rxjava zip和merge的区别

跟merge的区别是:1.方法的参数不一样,zip有一个合并函数,merge没有,所以zip发射数据是合并函数的返回值,merge则是交错排列多个源Observable发射的数据。2.merge的终止不会受任何一个Observable的发射完成而终止,zip则只要有一个Observable的发射完成而终止发射 (merge和zip中只要有一个错误通知终止,...

一次讲清UML类图中的六大关系

类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合。3.2类图—依赖关系只要在类中用到对方,那么他们之间就存在依赖关系,如果没有对方,连编译都通过不了。类中用到对方的地方:类的成员属性 方法的返回类型 方法接收的参数类型 方法中使用到 依赖使用虚线箭头,箭头指向依赖者 3.3类图—泛化...

组合关系与聚合关系的区别和联系 组合关系和聚合关系的联系 组合关系与聚合关系之间的联系 怎么区分组合关系和聚合关系 组合关系和聚合关系谁提出的 组合关系与聚合关系区别 为什么组合关系和聚合关系 聚合规则和组合规则的关系 组合与聚合的区别
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
上海大名城映_有多少户? 英特尔处理器漏洞有哪些害? 英特尔漏洞都会影响哪些CPU?下一代还会影响吗? cpu使用率100%是怎么回事呀? 生姜红茶减肥法骗局 鲁东大学大一新生电话卡是用的学校发的联通卡吗? 鲁东大学用移动的多还是用联通的多?求师哥师姐们解答 ...牙齿一碰到溃疡就疼,治疗口腔溃疡的偏方有哪些呢? 我想找一个飞车情侣名字,我有车队,车队名字是丿茗门丨灬 梦幻悟空传变态版安卓APK java中对组合的定义 七个月剖腹产的宝宝能养活吗? 为什们移动卡和联通卡一起用,只可以用移动流量 移动公司的流量套餐主卡副卡绑定在一起,副卡上网扣流量月账单显示吗? 中国移动两张电话卡绑定在一起主卡会知道副卡用流量登了什么软件吗? 脚趾甲长进肉里了怎么办??? 两张电话卡绑定在一起共用流量和话费买的无限流量套餐,副卡什么时候用了流量,用了多少主卡会知道吗? 如果同时插入一张移动卡和一张移动流量卡,那流量卡能使用吗? 两个电话卡绑定在一起可也互相用流量吗 一张手机卡的流量可以几张卡一起用吗? 中国移动两张电话卡绑定在一起了副卡有流量在干什么主卡会知道吗? 家庭绑卡流量是一起算的吗 请问我该如何一次性删除垃圾邮箱里的邮件? 泉州电商ERP那家强? 泉州电商erp,电商分销ERP,哪里有 泉州市尚宝网络科技有限公司怎么样? 房子过户在前夫名下卖房子我还要给中介费吗? 二手房交易,卖房需要给中介佣金吗? 卖房子时,卖方需要给卖方自己的中介费吗? 卖房是否需要付中介费? java中的组合与继承 java 所有组合 沉香手串什么牌子的好,鼎华的沉香靠谱吗? 沉香手串买哪家好,鼎华沉香手串怎么样? 哪里卖的沉香手串品质最好? 如何把大卡剪成小卡 以及剪卡注意事项.txt 淘宝怎样拒收自己名字别人的号码的快递? 之前的大卡是不是要剪成小卡 ① 这个符号怎么写 北京标识标牌制作公司哪家比较好 北方天朗(北京)广告标识有限公司怎么样? 北京柏盛名匠标识制作有限公司怎么样? 幼儿园名称核准是从工商部门办理还是从民政部门办理? 幼儿园核名能用北大二个字吗 如何在北京注册一家幼儿教育成长中心 夏天的素饺子可用什么菜包 新手开车如何培养车感 新手司机怎样培养路感,达到人车合一的水平? win7 dnf,我电脑的系统是win7的玩dnf玩着玩着为什么会卡屏的? win732位玩dnf卡屏