手记

clone深拷贝

public class Person implements Cloneable {
    private int age;
    private String name;
    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        Person person = (Person) super.clone();
        person.name = new String(name);
        return person;
    }

    public static void main(String[] args) throws CloneNotSupportedException {
        Person p = new Person(23, "wang");
        Person p1 = (Person) p.clone();
        System.out.println(p.getName() == p1.getName());
        System.out.println(p.getName());
        System.out.println(p1.getName());
    }
}

需要实现clone接口,引用还需要再次clone

0人推荐
随时随地看视频
慕课网APP