几个UML模型的Java实现..(2)
-
import java.awt.Color;
-
-
-
private Color color;
-
-
private boolean isFilled;
-
-
return color;
-
}
-
-
this.color = color;
-
}
-
-
public boolean isFilled() {
-
return isFilled;
-
}
-
-
public void setFilled(boolean isFilled) {
-
this.isFilled = isFilled;
-
}
-
-
}
[Point.java]
-
-
}
[Circle.java]
它有一条实心菱形线指向Point,表组合,其中Point端注明1,
即每个Circle对象的产生都伴随着一个Point对象的产生,这个Circle对象消失了,相应的Point对象也随之消失。
因此我们直接在属性中直接new,
也可以先放一个Point属性不指向任何对象,而在构造方法中为其new新的Point对象。
另一条线则是空心菱形指向Style,Style端注明1,Circle端注明*,
表聚合,同时一个Style对象可以为多个Circle对象使用,而一个Circle对象只可以使用一个Style对象。
为此我们先放一个Style属性,再创建setter方法供后面为其设置Style对象时使用。
-
import java.util.*;
-
-
public class Circle {
-
-
-
private Style style;
-
-
private int radius;
-
-
public int getRadius() {
-
return radius;
-
}
-
-
public void setRadius(int radius) {
-
this.radius = radius;
-
}
-
-
return style;
-
}
-
-
this.style = style;
-
}
-
-
}
[Polygon.java]
与Circle的线基本一样,
唯一不同的是指向Point时,Point端注明3..n,
即该类对象创建时至少要有3个Point对象,
因此我们新建个List来存放Point对象,同时在构造器中为其加入三个Point对象,
为了使可能存在n个节点,再添加了一个addPoint方法。
要注意的是,一个Point对象只能同时为一个Circle对象或一个Polygon对象所用,因此我们并非传Point类的参数进该方法,
而是在该方法中new一个新的Point对象再放入列表。
-
import java.util.*;
-
-
-
private List<Point> pointList = new ArrayList<Point>();
-
-
private Style style;
-
-
}
-
-
public void addPoint(){
-
}
-
-
return style;
-
}
-
-
this.style = style;
-
}
-
-
}