(十三)对象克隆

Posted 且听风吟-wuchao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(十三)对象克隆相关的知识,希望对你有一定的参考价值。

Object类实现了clone()方法(protected)。用户自己编写的类若想调用该方法,必须实现Cloneable接口,以此表明Object.clone()是合法的。

如果对象中的域是引用数据类型,克隆的新对象的对应域和原来的域共同引用同一个对象。

注:Cloneable是一个标记接口,其没有可实现的方法。如果不实现该接口,调用super.clone()会报CloneNotSupportedException的异常。

浅拷贝

直接使用Object.clone()方法克隆一个对象,如果对象含有引用数据类型的域,则克隆的对象和原来的对象共享这部分数据。

class Emplyee implments Cloneable{
    public Employee clone() trows CloneNotSupportedException{
        Employee e = (Employee) super.clone();return e;  
    }       
}    

 

深拷贝

重新定义克隆方法

class Emplyee implments Cloneable{
    public Employee clone() trows CloneNotSupportedException{
        Employee e = (Employee) super.clone();//先直接克隆对象
        e.hireDay = (Date) hireDay.clone();   //将对象的引用数据类型的域进行一次克隆
        return e;  
    }       
}    

 

以上是关于(十三)对象克隆的主要内容,如果未能解决你的问题,请参考以下文章

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

设计模式—— 十三 :原型模式

设计模式—— 十三 :原型模式

Instagram 克隆。单击按钮时,为啥我不能回到上一个片段?

如何在多个页面使用同一个HTML片段