使用名为Colorable
的void方法设计名为howToColor()
的接口。
设计一个名为Triangle的类,该类扩展GeometricObject
并实现Colorable
。
Triangle实现howToColor
方法以显示消息“对所有三面都进行着色”。
Triangle实现了toString
方法以显示其颜色和侧面。
在三角形中,任意两个边的总和大于另一边。 Triangle类必须遵守此规则。创建TriangleException
类,并完成并实现Triangle类的构造函数,如果创建的三角形的边违反规则,则抛出TriangleException
对象。
测试程序的输出应如下所示。
abstract class GeometricObject {
private String color = "white";
protected GeometricObject(String color) {
this.color = color;
}
public String toString() {
return "Color: " + color;
}
public abstract double getPerimeter();
}
class Triangle {
private double side1,side2,side3;
public Triangle(double side1,double side2,double side3) throws TriangleException {
}
}
class TriangleException {
}
代码正在测试:
try {
Triangle t1 = new Triangle(1.5,2,3);
System.out.println(t1.toString());
System.out.println("Perimeter for t1: " + t1.getPerimeter());
t1.howToColor();
Triangle t2 = new Triangle(1,3);
System.out.println(t2.toString());
System.out.println("Perimeter for t2: " + t2.getPerimeter());
t2.howToColor();
} catch (TriangleException ex) {
System.out.println(ex.getMessage());
System.out.println("Side1: " + ex.getSide1());
System.out.println("Side2: " + ex.getSide2());
System.out.println("Side3: " + ex.getSide3());
}
根据此代码结果必须是:
Color: red Sides: 1.5,2.0,3.0
Perimeter for t1: 6.5
Color all three sides.
Triangle inequality violation!
Side1: 1.0
Side2: 2.0
Side3: 3.0
因此,示例中的输入必须为true。例如,对于t2.getPerimeter()
语句,我们必须通过side1 + side2 + side3的返回值创建一个getPerimeter方法。但是t2部分不属于我们,它属于用户。
我无法回答这个问题,需要您的帮助。第一步,我遇到了一个错误。我可以解决其他部分,但不能解决引发Exception部分。我在eclipse中测试了代码的原始版本(未做任何更改),但出现了throws Exception错误。如果您尝试像我这样的代码,您也会收到错误消息。现在我该如何解决这个问题,我是Java新手。