编写一个 Cirele类代表圆,提供默认构造方法和创建指定半径的构造方法。创建一个InvalidRadiusException异常类,当半径为负数时,setRadius()方法抛出一个 InvalidRadiusException类对象。
时间: 2024-02-06 22:09:18 浏览: 165
下面是一个简单的实现:
```java
public class Circle {
private double radius;
public Circle() {
this.radius = 0.0;
}
public Circle(double radius) throws InvalidRadiusException {
if (radius < 0) {
throw new InvalidRadiusException("半径不能为负数");
}
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) throws InvalidRadiusException {
if (radius < 0) {
throw new InvalidRadiusException("半径不能为负数");
}
this.radius = radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
public double getCircumference() {
return 2 * Math.PI * radius;
}
}
class InvalidRadiusException extends Exception {
public InvalidRadiusException(String message) {
super(message);
}
}
```
在上面的代码中,我们定义了一个 `Circle` 类来表示圆形。该类具有默认构造函数 `Circle()` 和一个带有半径参数的构造函数 `Circle(double radius)`。在 `setRadius()` 方法中,如果半径为负数,则会抛出一个 `InvalidRadiusException` 异常。
我们还定义了一个 `InvalidRadiusException` 异常类,该类扩展了 `Exception` 类,并用于处理半径为负数的错误情况。
现在,我们可以创建一个 `Circle` 对象并使用它:
```java
public static void main(String[] args) {
try {
Circle c1 = new Circle();
System.out.println("半径:" + c1.getRadius()); // 0.0
System.out.println("面积:" + c1.getArea()); // 0.0
System.out.println("周长:" + c1.getCircumference()); // 0.0
Circle c2 = new Circle(5.0);
System.out.println("半径:" + c2.getRadius()); // 5.0
System.out.println("面积:" + c2.getArea()); // 78.53981633974483
System.out.println("周长:" + c2.getCircumference()); // 31.41592653589793
c2.setRadius(-2.0); // 抛出 InvalidRadiusException 异常
} catch (InvalidRadiusException e) {
System.out.println(e.getMessage());
}
}
```
阅读全文