1、什么是"克隆"?
在开发过程中,我们有一个对象A,其中存储了一些信息,这时我们需要创建一个新对象B,要求B的初始化信息和
A中的信息保持一致,但对B对象随后的信息更改不会影响B的信息。说简单点,对象B的初始化信息依赖于B,但是
A和B是两个完全独立的对象。
2、影子克隆(shallow clone)
这里我们以实验的方式讲解影子克隆的效果.
首先我们创建两个类CloneA、CloneB
public class CloneA {
private int i;
public CloneA(int i) {
super();
this.i = i;
}
public void add() {
i++;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
@Override
public String toString() {
return "CloneA [i=" + i + "]";
}
}
/
public class CloneB implements Cloneable{
private int v;
private CloneA cloneA = new CloneA(88);
public int getV() {
return v;
}
public void setV(int v) {
this.v = v;
}
public CloneA getCloneA() {
return cloneA;