程序如下:importjava.util.Arrays;//importjava.lang.Comparable;classPersonimplementsCloneable{privateStringname;privateintage;publicPerson(Stringname,intage){this.name=nam...
程序如下:
import java.util.Arrays;
//import java.lang.Comparable;
class Person implements Cloneable{
private String name;
private int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public void setName(int age){
this.age=age;
}
public void setName(String name){
this.name=name;
}
@Override
public String toString(){
return "person[name=" + name + ",age=" + age + "]\n";
}
@Override
protected Object clone()throws CloneNotSupportedException{
return super.clone();
}
}
public class ComDemo {
public static void main(String[] args)throws Exception {
Person[] per=new Person[]{new Person("张三",20),new Person("李四",78),new Person("王五",36)};
Person[] per1=(Person[])per.clone();
per1[0].setName("阿飞");
per1[1].setName("木木");
System.out.println(Arrays.toString(per));
System.out.println(Arrays.toString(per1));
//Person p1=new Person("小妹",18);
//Person p2=(Person)p1.clone();
//p2.setName("花花");
//p1.setName("小美");;
//System.out.println(p1);
//System.out.println(p2);
}
}
问题:
为什么克隆一个普通对象,克隆后的对象彼此占有各自的堆内存空间,但是克隆一个对象数组,克隆后的对象数组貌似占有同一个内存空间
展开