throw new IllegalArgumentException("Inner radius cannot be negative.");这种没学,换一种简单的方法
时间: 2024-09-30 21:15:45 浏览: 14
当然,如果你想避免直接抛出异常,可以将半径验证放在setter方法内部,如果输入不合适就改变状态而不是直接抛错。下面是简化版的`Ring`类,仅在设置无效半径时给出提示:
```java
public class Ring {
private double innerRadius;
private double outerRadius;
private String color;
// 构造函数
public Ring(double innerRadius, double outerRadius, String color) {
this.setInnerRadius(innerRadius);
this.setOuterRadius(outerRadius);
this.color = color;
}
// Getter methods (getters)
public double getInnerRadius() {
return innerRadius;
}
public double getOuterRadius() {
return outerRadius;
}
public String getColor() {
return color;
}
// Setter methods (setters) with validation
public void setInnerRadius(double innerRadius) {
if (innerRadius < 0) {
System.out.println("Inner radius cannot be negative. Setting it to 0.");
this.innerRadius = 0; // 或者选择一个默认值
} else {
this.innerRadius = innerRadius;
}
}
public void setOuterRadius(double outerRadius) {
if (outerRadius <= innerRadius) {
System.out.println("Outer radius must be greater than the inner radius. Setting it to the current inner radius.");
this.outerRadius = innerRadius;
} else {
this.outerRadius = outerRadius;
}
}
public void setColor(String color) {
this.color = color;
}
// Method to calculate and return the area of the ring
public double getArea() {
double area = Math.PI * Math.pow(outerRadius, 2) - Math.PI * Math.pow(innerRadius, 2);
return area;
}
}
```
在这个版本里,如果试图设置无效的半径,会打印一条消息并保持默认值或指定的新值。
阅读全文