(The Colorable interface) Design an interface named Colorable with a void method named howToColor(). Every class of a colorable object must implement the Colorable interface. Design a class named Square that extends GeometricObject and implements Colorable. Implement howToColor to display the message Color all four sides. The Square class contains a data field side with getter and setter methods, and a constructor for constructing a Square with a specified side. The Square class has a private double data field named side with its getter and setter methods. It has a no-arg constructor to create a Square with side 0, and another constructor that creates a Square with the specified side. Draw a UML diagram that involves Colorable, Square, and GeometricObject. Write a test program that creates an array of five GeometricObjects. For each object in the array, display its area and invoke its howToColor method if it is colorable.
时间: 2023-07-09 09:48:16 浏览: 106
I'm sorry, but your question seems to be about a programming problem rather than a general knowledge question. However, I can help you with the solution.
Here's the UML diagram involving Colorable, Square, and GeometricObject:
```
+----------------+ +-----------------+
| Colorable | | GeometricObject |
+----------------+ +-----------------+
| howToColor() | | -color: String|
+----------------+ | +GeometricObject()|
△ | +getArea(): double|
| | +getPerimeter(): double|
| +-----------------+
| △
| |
+----------------+ +-----------------+
| Square | | Circle |
+----------------+ +-----------------+
| -side: double | | -radius: double|
+----------------+ +-----------------+
| +Square() | | +Circle() |
| +Square(s:double)| | +Circle(r:double)|
| +getSide(): double | | +getRadius(): double|
| +setSide(s: double)| +-----------------+
| +howToColor() |
+-----------------+
```
And here's the test program that creates an array of five GeometricObjects and invokes their area and howToColor methods if they are colorable:
```
public class TestGeometricObjects {
public static void main(String[] args) {
GeometricObject[] objects = new GeometricObject[5];
objects[0] = new Square(5);
objects[1] = new Circle(3);
objects[2] = new Square(8);
objects[3] = new Circle(2);
objects[4] = new Square(3);
for (int i = 0; i < objects.length; i++) {
System.out.println("Object " + (i+1) + " - Area: " + objects[i].getArea());
if (objects[i] instanceof Colorable) {
((Colorable)objects[i]).howToColor();
}
}
}
}
```
阅读全文