JAVA中的对象组成
一个对象可以包含另一个对象,他们之间的关系称之为组成(composition),是一种特殊的集合关系。
一个对象可以拥有多个集合对象。他们之间的关系则称为集合。比方说:”a student has a name” 这就包含了两个对象,student类和name类,并且他们之间的关系是集合的关系。
这种类之间的关系就形成了一种多样性(multiplicity)。
a student has a name
a student has a address
其中,一个学生只能对应一个地址,而一个地址可以被很多学生共享。但一个名字只能对应一个学生,一个学生也只可以对应一个名字。这就像数学中的集合关系,一对一或者一对多。
这就引出了集合类和聚合类的方法。集合类(aggregated class),聚合类(aggregating class)。
集合类如下:
public class Name{
...
}
public class Address{
...
}
聚合类如下:
public class Student{
private Name name;
private Address address;
}
可见Student是聚合了两个类。但是其余两各类构成了Student类,是集合类。
这种关系也可以存在在一个类中。
如下:
public class Person{
private Person supervisor;
}
用数组也是可以的
public class Person{
...
private Person[] supervisor;
}