版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_22708467/article/details/86586654
class A implements Cloneable {
private int i;
public A(int ii) {
i = ii;
}
public void doublevalue() {
i *= 2;
}
public String toString() {
return Integer.toString(i);
}
public Object clone() {
A o = null;
try {
o = (A) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return o;
}
}
class B implements Cloneable {
public int aInt;
public A a = new A(111);
public Object clone() {
B o = null;
try {
o = (B) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
o.a = (A) a.clone();
return o;
}
}
public class CloneMain {
public static void main(String[] a) {
B b1 = new B();
b1.aInt=1;
B b2 = (B) b1.clone();
b2.aInt=2;
System.out.println(b1.aInt);
A a1 = new A(111);
A a2= (A) a1.clone();
a2.doublevalue();
System.out.println(a1.toString());
}
}