java——对象的克隆

对象的克隆

  当拷贝一个变量时,原始变量与拷贝变量引用同一个对象,这就就是说,改变一个变量所引用的对象将会对另外一个变量产生影响。如下图:

//拷贝
Employee original = new Employee("jim", 10000);
Employee copy = orginal;

//克隆
Employee copy = original.clone();

clone()方法是object类的一个proteced方法,也就是说,在用户编写的代码中不能直接调用它。只有Employee类才能克隆Employee对象。默认的克隆操作是浅拷贝,它并没有克隆包含在对象中的内部对象。

深拷贝的实现:

//深拷贝
class Employee implements Claoneable{
    //实现深拷贝
    public Employee clone() throws CloneNotSupportedException{//抛出异常
        Employee cloned = (Employee) super.clone();
        
        cloned.hireDay = (Date) hireDay.clone();

        return cloned;
    }
    
} 
原文地址:https://www.cnblogs.com/rsdqc/p/5351053.html