深拷贝 && 浅拷贝纠错

环境: jdk 8

Cat.java 代码如下

package app.zoo;

public class Cat implements Cloneable {
    public String name;

    public Cat(String name) {
        this.name = name;
    }

    public void meow() {
        System.out.println("喵喵喵~~~" + name);
    }

    @Override
    public Object clone() {
        Cat cat = null;
        try {
            cat = (Cat) super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }

        return cat;
    }
}

Main.java 代码如下

package app;

import app.zoo.Cat;

public class Main {
    public static void main(String[] args) {
        Cat cat = new Cat("项羽");
        Cat newCat = (Cat) cat.clone();
        Cat simpleCat = cat;

        cat.name = "张三";
        cat.meow();
        newCat.meow();
        simpleCat.meow();
    }
}

运行结果如下

喵喵喵~~~张三
喵喵喵~~~项羽
喵喵喵~~~张三

结论: 类实现 cloneable接口为深拷贝,变量赋值为浅拷贝

为了点个赞,专门注册的账号
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!