JAVA学习——聚合与组合

一、聚合的定义

    当一个类的实例作为另一个类的属性,称之为“ 对象聚合 ”。

    假设 B 类中的实例 b 作为 A 类的一个属性,在创建 A 类的时候并不会同步创建 B 类对象,当且仅当外部对象传入时才创建,换句话说,B 类对象并不是由 A 类对象的创建的。 因此,A 类与 B 类之间并不是“命运共同体”的关系,而是一种“亲戚”关系,B 类不会因为 A 类的消亡而消亡。

    由此可见,聚合中整体与部分的关系是一种较为松散的关系。

​
//聚合的代码实例

//Student 类为 B 类
class Student{
}

//School 类为 A 类
class School{
    private Student student;//声明但不定义

    public setStudent(){//通过外部定义
        student = new Student();
    }
}


//学校与学生的关系,就如同聚合的A类与B类的关系。
//当一个新的学校成立时(相当于A类的创建),通过家长的报名将孩子送到学校中(外部条件),从而学校中有了学生(B类的创建);
//当一所学校倒闭的时候(A类的消亡),学生从这所学校到另一所学校学习(B类拥有的其他引用)。

​

 

二、组合的定义

    当一个类的实例成为另一个类的成员变量,表示两个类之间存在着一种“ has a ”的关系。

    假设 B 类中的实例 b 作为 A 类的一个成员变量,在创建 A 类的时候 B 类对象同步产生,故 B 类对象是由 A 类对象唯一创建的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值