组合:部分与整体是与生俱来的,部分的存在依赖于整体。比如汽车和它的零部件车销毁了,零部件也没用了。
聚合:学院和老师,学院没了,老师还是独立的个体。
两张方式都是说明了类和类的关系。
聚合例子:
public class Class {
private List<Student> students;
public Class() {} //可创建一个空班级
public Class(List<Student> students) {//可创建一个带学生的班级
this.students = students;
}
public void setStudent(List<Student> students){
this.students = students;
}
public void printAllStudent() {
for (Student student : students) {
System.out.println(student.getName());
}
}
}
组合例子:
public class Body {
public Set<Cell> cells;
public Body() {
cells = new HashSet<Cell>();
}
public void addCells(Set<Cell> cells) {
cells.addAll(cells);
}
public void printAllCells() {
for (Cell cell : cells) {
System.out.println(cell.getCellSize());
}
}
private class Cell{//Cell作为Body内部类,与Body共存亡
private int size;
public void setCell(int size){
this.size = size;
}
}
}