public static void main(String[] args) {
// TODO Auto-generated method stub
System.out .println("克隆之前:");
Address address=new Address();
address.setState("中国");
address.setProvice("河南省");
address.setCity("信阳");
People people=new People("张佳", 33, address);
System.out.println("第一个员工的信息");
System.out.println(people);
System.err.println("克隆之后:");
//使用克隆创建p对象
People p=people.clone();
//修改他们的属性
p.getAddress().setState("中国");
p.getAddress().setProvice("江苏省");
p.getAddress().setCity("苏州市");
p.setName("小花");
p.setAge(34);
System.out.println("第二个员工的信息");
System.out.println(p);
System.out.println("第一个员工的信息");
System.out.println(people);
}
}
public class People implements Cloneable{
private String name;
private int age;
private Address address;
public People(String name, int age, Address address) {
super();
this.name = name;
this.age = age;
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
@Override
public String toString() {
StringBuffer b=new StringBuffer();
b.append("姓名:"+name);
b.append("年龄:"+age+"\n");
b.append("地址:"+address);
return b.toString();
}
//现实浅克隆
public People clone() {
People people=null;
try {
people=(People) super.clone();
} catch (Exception e) {
// TODO: handle exception
}
return people;
}
}
public class Address {
private String city;
private String provice;
private String state;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getProvice() {
return provice;
}
public void setProvice(String provice) {
this.provice = provice;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
@Override
public String toString() {
StringBuffer b=new StringBuffer();
b.append("国家:"+state);
b.append("省:"+provice);
b.append("城市"+city);
return b.toString();
}
}