java cloneable实例
时间: 2023-10-30 21:07:20 浏览: 101
Java中的`Cloneable`接口是一个标记接口,用于指示实现类可以被克隆。它并不包含任何方法,只是作为一个标记,告诉编译器该类可以被克隆。
要实现`Cloneable`接口,只需在类的声明中添加`implements Cloneable`,然后重写`Object`类中的`clone()`方法。
以下是一个示例:
```java
public class Person implements Cloneable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
public static void main(String[] args) {
Person person1 = new Person("Alice", 25);
try {
Person person2 = (Person) person1.clone();
System.out.println(person2.name); // 输出:Alice
System.out.println(person2.age); // 输出:25
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,`Person`类实现了`Cloneable`接口,并重写了`clone()`方法。在`main()`方法中,我们创建了一个`Person`对象`person1`,然后使用`clone()`方法创建了一个新的对象`person2`。最后,我们打印了新对象的属性,验证克隆是否成功。
需要注意的是,使用`clone()`方法进行对象的浅拷贝(shallow copy),即基本数据类型会被复制,而引用类型只是复制了引用,指向同一块内存。如果需要实现深拷贝(deep copy),需要在`clone()`方法中对引用类型进行逐个复制。
阅读全文