以下是使用 Java 实现原型模式来对具有原点 `Point` 和半径 `r` 的二维空间的圆 `Circle` 进行深克隆的示例代码: ```java import java.lang.CloneNotSupportedException; class Point implements Cloneable { private int x; private int y; public Point(int x, int y) { this.x = x; this.y = y; } public int getX() { return x; } public int getY() { return y; } @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); } } class Circle implements Cloneable { private Point origin; private int radius; public Circle(Point origin, int radius) { this.origin = origin; this.radius = radius; } public Point getOrigin() { return origin; } public int getRadius() { return radius; } @Override protected Object clone() throws CloneNotSupportedException { Circle clone = (Circle) super.clone(); clone.origin = (Point) origin.clone(); return clone; } } public class PrototypePatternExample { public static void main(String[] args) throws CloneNotSupportedException { Point origin = new Point(10, 20); Circle circle = new Circle(origin, 5); Circle clonedCircle = (Circle) circle.clone(); // 修改原始圆的原点坐标 circle.getOrigin().setX(50); System.out.println("原始圆的原点坐标: (" + circle.getOrigin().getX() + ", " + circle.getOrigin().getY() + ")"); System.out.println("克隆圆的原点坐标: (" + clonedCircle.getOrigin().getX() + ", " + clonedCircle.getOrigin().getY() + ")"); } } ``` 在上述代码中,`Point` 类和 `Circle` 类都实现了 `Cloneable` 接口,并在 `clone` 方法中实现了深克隆的逻辑。对于 `Circle` 类,不仅自身要克隆,其内部的 `Point` 对象也要进行克隆,以实现深克隆的效果。 [2024-11-10 15:35:40 | AI写代码神器 | 519点数解答]