我需要使用可比界面比较两个形状以确定哪个比另一个大或小
I need to compare two shapes to determine which one is bigger or smaller than the other using comparable interface
public abstract class Shape {
protected int height;
protected int width;
public Shape(int height, int width) {
this.height = height;
this.width = width;
}
public final void printArea() {
System.out.println("This " + getName() + " has a height of " +
height + ", a width of " + width + ", and an area of " +
getArea() + ".");
}
public final void printPerimeter() {
System.out.println("This " + getName() + " has a height of " +
height + ", a width of " + width + ", and a perimeter of " +
getPerimeter() + ".");
}
protected abstract String getName();
protected abstract double getArea();
protected abstract double getPerimeter();
}
}
这是我的起始代码 我还有其他三个 classes Rectangle、RightTriangle 和 Square 都有代码,但我专注于我的形状 class 首先我需要实现 Comparable 接口 Comparable。然后因为在每个子class中重写了get area方法。我可以在 Shape class 中编写一个 compareTo() 方法,在将任何类型的 Shape 或 subclass 对象与任何其他对象进行比较时,该方法将正常工作。我需要实施 compareTo() 方法。所以 public int compareTo(Shape s) 正确吗?现在比较的代码是 int k = getName().compareTo(s.getName()); .我需要重写从 Shape class 中的对象继承的 toString() 方法,并让它 return 一个包含当前对象名称及其区域的字符串,格式如下:
姓名:地区
我只是需要一些指导
int compareTo(Shape shape) {
return getArea() - shape.getArea();
}
这将允许您比较形状,并且该方法将 return <0 如果较小,如果相等则为 0,如果较大则为正数,就像 Comparable 接口应该做的那样
public abstract class Shape {
protected int height;
protected int width;
public Shape(int height, int width) {
this.height = height;
this.width = width;
}
public final void printArea() {
System.out.println("This " + getName() + " has a height of " +
height + ", a width of " + width + ", and an area of " +
getArea() + ".");
}
public final void printPerimeter() {
System.out.println("This " + getName() + " has a height of " +
height + ", a width of " + width + ", and a perimeter of " +
getPerimeter() + ".");
}
protected abstract String getName();
protected abstract double getArea();
protected abstract double getPerimeter();
}
}
这是我的起始代码 我还有其他三个 classes Rectangle、RightTriangle 和 Square 都有代码,但我专注于我的形状 class 首先我需要实现 Comparable 接口 Comparable。然后因为在每个子class中重写了get area方法。我可以在 Shape class 中编写一个 compareTo() 方法,在将任何类型的 Shape 或 subclass 对象与任何其他对象进行比较时,该方法将正常工作。我需要实施 compareTo() 方法。所以 public int compareTo(Shape s) 正确吗?现在比较的代码是 int k = getName().compareTo(s.getName()); .我需要重写从 Shape class 中的对象继承的 toString() 方法,并让它 return 一个包含当前对象名称及其区域的字符串,格式如下:
姓名:地区
我只是需要一些指导
int compareTo(Shape shape) {
return getArea() - shape.getArea();
}
这将允许您比较形状,并且该方法将 return <0 如果较小,如果相等则为 0,如果较大则为正数,就像 Comparable 接口应该做的那样