对象组合一:

class0中的pClass1指向class1的对象,在new class1的时候把class0的this指针给class1并建立pClass0对class0的对象应用.
即pClass1 ---> new Class1(class1obj的this指针); pclass0 ---> class0

class Room{
private double rSize;
private Desk child;
public Room\(\){
rSize = 50;
}
public void Create\(\){
child = new Desk\(this\);
System.out.print\(child.GetSize\(\)\);
}
public double GetSize\(\){
return rSize;
}
}
class Desk{
private Room mother;
public Desk\(Room m\){
mother = m;
}
public double GetSize\(\){
return mother.GetSize\(\) \* 0.2;
}
}
public class Test9 {
public static void main\(String\[\] args\) {
// TODO Auto-generated method stub
Room room = new Room\(\);
room.Create\(\);
}
}
在Room里面的Create方法里面去new Desk()对象,这样就构成了Room对象和Desk对象的一致性.
组合(composition)与聚合(aggregation):
组合就是一个类的对象是另一个类的对象的组成部分,比如汽车和汽车零件.
聚合就像汽车和司机,其实司机并不是汽车的一部分.
如下,组合用实心,聚合用虚心.

Android里面的组合关系:
在一个Activity里面 去new 一个 Button;往往有这样的代码:
class MyActivity extends Activity{
.........................................................
Button bt = new Button\(this\)
.........................................................
}
这样就构成了上面双向关系组合。