4.(可着色接口Colorab1e)设计一个名为Colorable的接口,其中有名为howToColorO的void方法。可着色对象的每个类必须实现Colorab1e接口。设计一个名为Square的类,继.承自GeometricObject类并实现Colorab1e接口。实现howToColor方法,显示一个消息Color a11 four sides (给所有的四条边着色)。设计一个名为Circle的类,承自GeometricObject类,并实现所有抽象的方法。
画出包含Colorable, Square,Circle和GeometricObject的UML图。编写一个测试程序,创建有五个GeometricObject对象的数组。对于数组中的每个对象而言,如果对象是可着色的,那就调用howToColor方法。
5.(八边形类Octagon)编写一个名为Octagon的类,它继承自GeometricObject类并实现Comparable和Cloneable接口。假设八边形八条边的边长都相等。它的面积可以使用下面的公式计算:
画出包括Octagon、GeometricObject、Comparable和Cloneable的UML图。编写一个测试程序,创建一个边长值为5的Octagon对象,然后显示它的面积和周长。使用clone方法创建一个新对象,并使用compareTo方法比较这两个对象。
package 几何图形;
import java.util.Comparator;
import java.util.Date;
abstract class GeometricObject implements Comparable<GeometricObject>,Comparator<GeometricObject>{
private String color;
private boolean filled;
private Date dateCreated;
protected GeometricObject(){
}
protected GeometricObject(String color,boolean filled){
this.color=color;
this.filled=filled;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public boolean isFilled() {
return filled;
}
public void setFill