Java中支持对象的复制(克隆)处理操作,可以直接利用已有的对象克隆出一个成员属性内容完全相同的实例化对象,对象的克隆可以使用Object类中提供的clone()方法,此方法定义如下:
克隆方法:protected Object clone() throws CloneNotSupportedException;
clone()此方法上抛出了一个“CloneNotSupportedException”(不支持的克隆异常),这个异常表示的是,要克隆对象的类必须实现Cloneable接口,但是Cloneable接口没有任何的方法,所以这个接口属于标识接口,只表示一种能力
范例:实现对象克隆
public class Member03 implements Cloneable { //标识接口,表示一种能力,该类对象允许克隆
private String name;
private int age;
public Member03(String name, int age) {
this.name = name;
this.age = age;
}
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;
}
@Override
public String toString() {
return "Member03 [name=" + name + ", age=" + age + "]";
}
@Override
protected Object clone() throws CloneNotSupportedException{
return super.clone(); //调用父类clone()方法
}
}
public class JavaAPIDemo348 {
public static void main(String[] args) throws CloneNotSupportedException {
Member03 Member03A=new Member03("雷雷",22);
Member03 Member03B=(Member03)Member03A.clone();
Member03B.setName("雪雪");
System.out.println(Member03A);
System.out.println(Member03B);
}
}
执行结果
Member03 [name=雷雷, age=22]
Member03 [name=雪雪, age=22]
对象的克隆操作可以通过Object类提供的clone()方法来完成,由于此方法在Object中使用protected设置了访问权限,所以该方法只能通过子类调用,而对象克隆成功后就会利用已有的对象构建一个全新的对象,彼此之间的操作不会有任何影响。必须实现Cloneable接口才能克隆。这个接口属于标识接口,表示一种能力。