对象组合一:

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\)

.........................................................

}

这样就构成了上面双向关系组合。

results matching ""

    No results matching ""