组合和聚合是有很大区别的,这个区别不是在形式上,而是在本质上,
比如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{
}