在Java中,clone()方法是用来实现对象的拷贝操作。它是Object类中的一个protected方法,可以被子类重写,实现对象的拷贝。
使用方法
要使用clone()方法,需要实现Cloneable接口,这个接口没有任何方法,只是一个标记接口,用来表明一个类可以被克隆。如果一个类没有实现Cloneable接口,则调用clone()方法时会抛出异常CloneNotSupportedException。
public class Person implements Cloneable { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public Person clone() { Person person = null; try { person = (Person) super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return person; } }
上面是一个Person类,实现了Cloneable接口,并重写了clone()方法。clone()方法可以把一个对象拷贝一份,拷贝出来的对象和原来的对象是完全一样的,但是它们是两个不同的对象。
使用示例
下面的示例演示了如何使用clone()方法拷贝一个Person对象:
Person person1 = new Person("张三", 18); Person person2 = person1.clone(); System.out.println(person1.getName()); // 张三 System.out.println(person2.getName()); // 张三 System.out.println(person1 == person2); // false
上面的代码中,我们创建了一个Person对象person1,使用clone()方法把它拷贝一份,拷贝出来的对象是person2,person1和person2是完全一样的,但是它们是两个不同的对象。
Java中的clone()方法是用来实现对象的拷贝操作,要使用clone()方法,必须实现Cloneable接口,clone()方法可以把一个对象拷贝一份,拷贝出来的对象和原来的对象是完全一样的,但是它们是两个不同的对象。