class CloneTest
{
public static void main(String[] args)
{
JiaoShou js=new JiaoShou("wangxing",30);
Student sd=new Student("lisi",15,js);
Student sd2=(Student)sd.clone();
sd2.js.name="lizhao";
sd2.js.age=10;
System.out.println("name="+sd.js.name+",age="+sd.js.age);
}
}class JiaoShou implements Cloneable
{
String name;
int age;
JiaoShou(String name,int age)
{
this.name=name;
this.age=age;
}
public Object clone()
{
Object ob=null;
try
{
ob=super.clone();
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
return ob;
}
}
class Student implements Cloneable
{
String name;
int age;
JiaoShou js;
Student(String name,int age,JiaoShou js)
{
this.name=name;
this.age=age;
this.js=js;
}
public Object clone()
{
Student sd=null;
try
{
sd=(Student)super.clone();
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
sd.js=(JiaoShou)js.clone();//这句表示什么?
return sd;
}
}我对Student类中的clone()方法不太懂,请各位朋友帮忙解答一下,下谢谢啦!
赋给 Student类中的js属性。
public static void main(String[] args)
{
JiaoShou js=new JiaoShou("wangxing",30);
Student sd=new Student("lisi",15,js);
Student sd2=(Student)sd.clone();
sd2.js.name="lizhao";
sd2.js.age=10;
System.out.println("name="+sd.js.name+",age="+sd.js.age);
//输出name=wangxing,age=30,因为克隆对象的改变不会对原对象产生影响
System.out.println("name="+sd2.js.name+",age="+sd2.js.age);
//输出name=lizhao,age=10,输出克隆对象
}