/**
* <p>
* 项目名称: Java
* </p>
* <p>
* 文件名称: CloneTest
* </p>
* <p>
* 版权所有: 版权所有(C)2008-2010
* </p>
* <p>
* 公 司: * </p>
* <p>
* 编写日期: 2008-7-9上午01:45:52
* </p>
* <p>
* 作 者: huangtao
* </p>
*/
/**
* @author huangtao
*/
public class CloneTest
{
public static void main(String[] args)
{
PersonInfo p = new PersonInfo("黄涛",24);
Car c1 = new Car("098970" , "黄涛" , "别克" , "红色",p);
Car c2 = (Car) c1.clone();
c2.carNumber="098977";
c2.carOwner="汉明";
c2.carName="宝马";
c2.carColor = "白色";
c2.pi.name="汉明";
c2.pi.age=26;
System.out.println(c1.carNumber+c1.carOwner+c1.carName+c1.carColor+c1.pi.name+c1.pi.name);
System.out.println(c2.carNumber+c2.carOwner+c2.carName+c2.carColor+c2.pi.name+c2.pi.name);
}
}
class Car implements Cloneable
{
String carNumber;
String carName;
String carColor;
String carOwner;
PersonInfo pi;
public Car(String carNumber , String carOwner , String carName , String carColor , PersonInfo pi)
{
this.carNumber = carNumber;
this.carOwner = carOwner;
this.carName = carName;
this.carColor = carColor;
this.pi = pi;
}
public Object clone()
{
Car c = null;
try
{
c= (Car)super.clone();
}
catch (CloneNotSupportedException cnse)
{
cnse.printStackTrace();
}
c.pi=(PersonInfo)pi.clone();
return c;
}
public String toString()
{
return new StringBuffer().append("carOwner="+carOwner).append("carNumber="+carNumber)
.append("carName="+carName).append("carColor="+carColor).append(pi).toString();
}
}
class PersonInfo implements Cloneable
{
String name;
int age;
public PersonInfo(String name , int age)
{
this.name = name;
this.age = age;
}
public Object clone()
{
Object obj = null;
try
{
obj = super.clone();
}
catch (CloneNotSupportedException cnse)
{
cnse.printStackTrace();
}
return obj;
}
public String toString()
{
return new StringBuffer().append("name="+name).append("age="+age).toString();
}
}