JAVA 浅复制(clone)

JAVA浅克隆技术
克隆就是复制,JAVA中的克隆就是根据一个对象复制出另一个同类型的对象出来。
克隆的种类
Java中克隆分为两种:浅克隆和深克隆。他们的区别在于:如果被克隆的对象中有引用变量a,那么浅克隆出的对象和原对象中的的引用变量a指向的是同一个对象,而深克隆则是分别指向不同的对象。
先看一下浅克隆的的实现方式:
首先,被克隆的类需要继承接口java.lang.Cloneable,这样一个类就具备了能够被克隆的条件;这时,我们之需要覆盖接口的clone()方法就可以实现克隆了。
例如:
Zclb Clone() throws CloneNotSupportedException {
return (Zclb) this .clone();
}
这样就简单的实现了克隆方法了。
我们可以在程序中这样使用浅克隆:
Public class Zclb(){
Public List list1=new ArrayList();
Public int a=0
Zclb Clone() throws CloneNotSupportedException {
return (Zclb) this .clone();
}
}
Zclb lb=new Zclb();
Zclb lb2=lb.clone();
这时lb. list1和lb2.list1是相同的两个对象。这就是浅克隆的实现方式
如何让lb. list1和lb2.list1指向不同的两个对象呢?
这里就需要用到深克隆了
深克隆有很多种的实现方式;
可以通过对象序列化或者一级一级深度克隆的方式去实现了

你可能感兴趣的:(java)