class Person {
public String name;
public int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
重写object类中的clone方法(object类是所有类的父类)并且实现Cloneable接口
class Person implements Cloneable{
public String name;
public int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
protected Object clone()
throws CloneNotSupportedException {
return super.clone();
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public class Test {
public static void main(String[] args)
throws CloneNotSupportedException {
Person person1 = new Person("zhangsan",18);
Person person2 = (Person) person1.clone();
System.out.println(person1);
System.out.println(person2);
}
}
在person类中加一个数组arr
class Person implements Cloneable{
public String name;
public int age;
int[] arr = {1 , 2, 3 , 4, 5 ,6 } ;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
protected Object clone()
throws CloneNotSupportedException {
return super.clone();
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
Test类中给拷贝出来person2的arr[0]改为9 看看是什么情况
public class Test {
public static void main(String[] args)
throws CloneNotSupportedException {
Person person1 = new Person("zhangsan",18);
Person person2 = (Person) person1.clone();
System.out.println("改之前");
System.out.println(Arrays.toString(person1.arr));
System.out.println(Arrays.toString(person2.arr));
person2.arr[0] = 9;
System.out.println("该之后");
System.out.println(Arrays.toString(person1.arr));
System.out.println(Arrays.toString(person2.arr));
}
}