深克隆与浅克隆的概念
一:
浅克隆:被复制对象的所有变量都含有与原来的对象相同的值,面所有的对其他对象的
引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用
的对象(就是只复制对应所复制的对象)
深克隆 :
被复制的对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量
。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对
象。深复制就是把要复制的对象和引用的对象都复制一遍 把整个过程都复制一遍。
二:clone方法满足条件
clone方法将对象复制一份返回给调用的人
2.1 对于任何对象x,都有x.clone != x 克隆的对象与原对像不是一个对象
2.2 对于任何对象x,都有 x.clone.getClass == x.getClass class表示类型 克
隆的类型与原类型一样。
2.3 对于x的equals()的方法 ,并且重写equals恰当的话 会有x.clone().equals
(x) 返回true 相等。比较的是内容。
三:Java中对象的克隆
1.我们要获取对象的一份复制文件,我们可以利用Java的Object类的clone()方法
2..在派生类中覆盖的基类的clone()方法,要声明public类 (因为原生的clone方
法是private私有的受保护的 ,我们声明为公共的可以调用)
3.在派生类的clone()方法中,调用super.clone()。 (在第一行调用,因为在运行
的时刻,Object中的clone()识别出你要复制的是哪一个对象,然后为此对象分配空
间,并进行对象的复制,将原始对象的内容--复制到新的对象存储空间中;继承自
Java.lang.Object类的 clone()方法是浅复制)
4.在派生类中实现Cloneable接口。

最低0.47元/天 解锁文章
4403





