复制

将一个对象的引用赋值给另一个对象

1. 直接赋值

A a1 = a2;
a1变化 a2也变化

2.浅复制

复制引用不复制引用的对象
创建新对象,将当前对象的非静态字段赋值到新对象,值类型复制,引用类型,复制引用而不复制引用的对象

public class Resume implements Cloneable {

    public Object clone() {
        try {
            return (Resume) super.clone();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

3.深复制

复制对象本身,复制对象包含的引用指向的对象

public class Student implements Cloneable{
    String name;
    Resume resume;

    public Student(String name, Resume resume) {
        this.name = name;
        this.resume = resume;
    }

    public Object clone(){
        Student s = null;
        try {
            s = (Student) super.clone();
        } catch (Exception e){
            e.printStackTrace();
        }
        s.resume = (Resume) resume.clone();
        return s;
    }
}
posted @   lwx_R  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-08-22 1.Python基础语法
2021-08-22 UVA10082
2021-08-22 数组和字符串
点击右上角即可分享
微信分享提示