首页 > 代码库 > (十三)对象克隆
(十三)对象克隆
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; } }
(十三)对象克隆
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。