java的clone
时间: 2023-10-29 22:00:07 浏览: 86
Java中的`clone()`方法用于创建并返回一个对象的拷贝,这个拷贝具有与原始对象相同的状态和属性。要使用`clone()`方法,需要确保被克隆的对象实现了`Cloneable`接口。
下面是使用`clone()`方法进行对象克隆的示例代码:
```java
class Person implements Cloneable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 重写clone()方法
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
public class Main {
public static void main(String[] args) {
Person person1 = new Person("Alice", 25);
try {
// 克隆person1对象
Person person2 = (Person) person1.clone();
System.out.println("person1: " + person1.getName() + ", " + person1.getAge());
System.out.println("person2: " + person2.getName() + ", " + person2.getAge());
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}
```
输出结果为:
```
person1: Alice, 25
person2: Alice, 25
```
在上述示例中,`Person`类实现了`Cloneable`接口并重写了`clone()`方法。在`main`方法中,通过调用`person1.clone()`创建了一个新的对象`person2`,并且`person1`和`person2`的属性值相同。
需要注意的是,`clone()`方法是浅拷贝,即只会复制对象的字段值,而不会复制对象引用的其他对象。如果需要进行深拷贝,需要自行实现相关逻辑。
阅读全文