java证明clone函数是浅拷贝
1.创建child类
public class Child { public String cname; public Child(String cname) { this.cname = cname; } public void setCname(String cname) { this.cname = cname; } public String getCname() { return cname; } }
2.创建Person类
public class Person implements Cloneable{ private int a ; private String name; public Child child ; public Person(int a, String name,String cname){ this.a = a; this.name = name; this.child = new Child(cname); } public void setName(String name) { this.name = name; } public void setA(int a) { this.a = a; } public String getName() { return name; } public int getA() { return a; } public void setChild(Child child) { this.child= child; } public Child getChild() { return child; } @Override public Object clone() throws CloneNotSupportedException { return (Person)super.clone(); } }
3.输出函数
public class TestBasic { public static void main(String[] args) throws CloneNotSupportedException { Person person1 = new Person(11,"ken","xiaoken"); Person person4 = (Person) person1.clone(); //clone person1.setName("MIN"); person1.child.cname="minzhong"; System.out.println(person4.getName());//name没改变 System.out.println(person4.child.cname);//person4.child.cname改变了,说明是浅拷贝 } }