码迷,mamicode.com
首页 > 其他好文 > 详细

对象的克隆

时间:2017-07-05 01:15:50      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:方法   数据   异常   object   数据类型   就会   检验   check   except   

在 java 中,很多时候拷贝的都是一个变量,所以很多的时候,原始变量 和  拷贝变量 引用同一个对象。所以,当某些情况下,我们需要创建两个一摸一样的对象,且以后可以各自改变各自的状态,就需要使用 clone

cloneObject 类的一个 protect 方法,只能通过对象调用,因为在 java 中,所有的类都继承了 Object。可能到这里你会想到,既然有现成的拷贝方法,直接调用就可以了,有什么好讲的?我只能说,对了一半。

使用 clone 方法,当你需要拷贝的对象中的所有数据域(类的属性,例如 Person类中的 name属性,即域)都是数值或者基本数据类型时,是没有问题的。

被拷贝对象数据域中存在引用了子对象时,原始对象和拷贝对象,将会共同引用这个子对象。所以默认的 clone 操作是浅拷贝

如果共同引用的子对象是不可变的,那么也是没问题的,但是更多的时候,子对象可变的,所以,我们必须重新定义 clone 方法,从而实现克隆子对象的深拷贝

如果一个对象需要克隆,而没有实现 Cloneable 接口,就会产生一个已检验的异常(checked exception),然而我也不知道是什么异常,代表什么意思o.o。

 

对象的克隆

标签:方法   数据   异常   object   数据类型   就会   检验   check   except   

原文地址:http://www.cnblogs.com/qxynotebook/p/7119165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!