组合聚合区别

组合和聚合是有很大区别的,这个区别不是在形式上,而是在本质上,

比如A类中包含B类的一个引用b,当A类的一个对象消亡时,b这个引用所指向的对象也同时消亡(没有任何一个引用指向它,成了垃圾对象),这种情况叫组合(composite)。//人和大脑

反之b所指向的对象还会有另外的引用指向它,这种情况叫聚合(aggregation)。//人和电脑




/**
 * Created by Administrator on 2017/10/27.
 */
public class Person {
    Brain brain;
    public Person(){//组合
        brain=new Brain();
    }

    public static void main(String[] args) {
        Person person=new Person();
    }

}
class Brain{

}


/**
 * Created by Administrator on 2017/10/27.
 */
public class Human {
    Computer computer;
    Human(Computer computer1){
        computer=computer1;
    }

    public static void main(String[] args) {
        Computer c=new Computer();//聚合
        Human h=new Human(c);
    }
}
class Computer{

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值