Nishant..
8
考虑一个LinkedList类的简单示例.A LinkedList由...组成Nodes.这里的LinkedList类是拥有对象.当它被摧毁时,Nodes它所包含的所有物都被擦掉了.如果Node从列表中删除对象,则该LinkedList对象仍将存在.
实现组合使得对象包含另一个对象.
class LinkedList {
Node head;
int size;
}
这是作文.
另一个例子,考虑一个Circle具有Point用于定义其中心坐标的类的类.如果Circle删除它的中心将被删除.
class Circle {
private float radius;
private Point center;
public Circle(Point center, float radius) {
this.center = center;
this.radius = radius;
}
public void setRadius(float radius) {
this.radius = radius;
}
public void setCenter(Point center) {
this.center = center;
}
public float getRadius() {
return radius;
}
public Point getCenter() {
return center;
}
class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public void setY(int y) {
this.y = y;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public int getX() {
return x;
}
}
@Override
public String toString() {
return "Center: " + "(" + center.getX() + "," + center.getY() + ")" + "\nRadius: " + this.getRadius()
+ " centimeters";
}
}
来自java集合的组合示例api:HashMap有一个Entry类.如果HashMap删除对象,则会删除Entry地图中包含的所有对象.
聚合也是一种对象组合,但不如组合强.它定义了"HAS A"关系.如果A类具有B类的引用并且删除B不会影响A的存在则使用非常简单的单词,那么它就是聚合.你必须在某个时候使用它.