package CloneTest;
public class student implements Cloneable{
private String name;
private int age;
private String sex;
//重写cloneable方法
@Override
protected Object clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return super.clone();
}
public student() {
super();
}
public student(String name, int age, String sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
}
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 String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
package CloneTest;
public class test1 {
public static void main(String[] args) throws Throwable {
/*
* 1、声明一个变量名stu 2、创建一个对象 3、stu指向对象
*/
student stu1, stu2 = null;
stu1 = new student("张三", 23, "女");
// 对stu2进行克隆而不是进行指向,如果是进行指向,
// 那么stu1和stu2将指向同一个区域,用setName赋的值也就会相同,
// 克隆是指把stu1里的所有数据copy一份给stu2,不改变stu1的值
// stu2=stu1;
stu2 = (student) stu1.clone();
stu2.setName("石溪");
System.out.println(stu2.getName());
System.out.println(stu2.getAge());
System.out.println(stu1.getName());
}
}