java定义一个园类并实现Cloneable接口,可以完成圆的复制操作
时间: 2024-01-22 20:19:10 浏览: 60
下面是一个 Java 的园类并实现 Cloneable 接口,可以完成圆的复制操作的示例代码:
```java
public class Circle implements Cloneable {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
// 实现 Cloneable 接口的 clone() 方法
@Override
public Circle clone() {
try {
return (Circle) super.clone();
} catch (CloneNotSupportedException e) {
// 如果该类没有实现 Cloneable 接口则会抛出 CloneNotSupportedException 异常
e.printStackTrace();
return null;
}
}
}
```
使用 `clone()` 方法可以完成圆的复制操作,例如:
```java
Circle circle1 = new Circle(3);
Circle circle2 = circle1.clone();
System.out.println(circle1.getRadius()); // 输出 3.0
System.out.println(circle2.getRadius()); // 输出 3.0
circle2.setRadius(4);
System.out.println(circle1.getRadius()); // 输出 3.0
System.out.println(circle2.getRadius()); // 输出 4.0
```
注意,如果该类没有实现 Cloneable 接口,则会抛出 `CloneNotSupportedException` 异常。因此,在实现 `Cloneable` 接口时,应该确保该类中的所有成员变量也都是可克隆的。
阅读全文