一. Clone的原理:
将现有的对象克隆一份,包括给现有对象属性所赋的值,形成一个新的对象,相当于在内存中将现有对象拷贝一份,并重新分配内存空间,拷贝后的对象和现有的对象相当于物理隔离了,操作克隆对象不会影响原来对象。
二. Clone的前提:
1. 要克隆的类实现Cloneable接口;
2. 在克隆类中重写clone()方法,
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
三. 代码实现:
User.java:
public class User implements Cloneable{
private String name;
private int 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 Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
UserClone.java:
public class UserClone {
/**
* @param args
* @throws CloneNotSupportedException
*/
public static void main(String[] args) throws CloneNotSupportedException {
User user = new User();
user.setName("测试1");
user.setAge(18);
User user2 = (User)user.clone();
user2.setName("测试2");
user2.setAge(111);
System.out.println(user.getName()+user.getAge());
System.out.println(user2.getName()+user2.getAge());
}
}