当前位置: 首页 > news >正文

浅克隆与深克隆区别

package d12_api_object;

public class Test2 {
    public static void main(String[] args) throws CloneNotSupportedException {
        //目标:掌握Object类提供的对象克隆方法
        //1、protected Object clone():对象克隆

        User u1 = new User(1,"min","1120",new double[]{99.0,100.0});
        System.out.println(u1.getId());
        System.out.println(u1.getUsername());
        System.out.println(u1.getPassword());
        System.out.println(u1.getScores());

        User u2 = (User) u1.clone();
        System.out.println(u2.getId());
        System.out.println(u2.getUsername());
        System.out.println(u2.getPassword());
        System.out.println(u2.getScores());
    }
}

package d12_api_object;
//Cloneable是一个标记接口
//规则。
public class User implements Cloneable{
    private int id;//编号
    private String username;//用户名
    private String password;//密码
    private double[] scores;//分数

    public User(int id, String username, String password, double[] scores) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.scores = scores;
    }

    public User() {
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        //super 去调用父类Object中的clone方法。
        return super.clone();
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public double[] getScores() {
        return scores;
    }

    public void setScores(double[] scores) {
        this.scores = scores;
    }
}

运行结果:

1
min
1120
[D@4eec7777
1
min
1120
[D@4eec7777

package d12_api_object;

public class Test2 {
    public static void main(String[] args) throws CloneNotSupportedException {
        //目标:掌握Object类提供的对象克隆方法
        //1、protected Object clone():对象克隆

        User u1 = new User(1,"min","1120",new double[]{99.0,100.0});
        System.out.println(u1.getId());
        System.out.println(u1.getUsername());
        System.out.println(u1.getPassword());
        System.out.println(u1.getScores());

        User u2 = (User) u1.clone();
        System.out.println(u2.getId());
        System.out.println(u2.getUsername());
        System.out.println(u2.getPassword());
        System.out.println(u2.getScores());
    }
}
package d12_api_object;
//Cloneable是一个标记接口
//规则。
public class User implements Cloneable{
    private int id;//编号
    private String username;//用户名
    private String password;//密码
    private double[] scores;//分数

    public User(int id, String username, String password, double[] scores) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.scores = scores;
    }

    public User() {
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        //super 去调用父类Object中的clone方法。
        User u2 = (User) super.clone();
        u2.scores = u2.scores.clone();
        return u2;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public double[] getScores() {
        return scores;
    }

    public void setScores(double[] scores) {
        this.scores = scores;
    }
}

运行结果:

1
min
1120
[D@4eec7777
1
min
1120
[D@3b07d329

相关文章:

  • MySQL SQL 优化专题
  • PCL的ConditionalRemoval(1)
  • 如何注册并加入一个联盟营销平台?详细步骤+风控指南
  • 基础的排序算法下(交换排序和归并排序)
  • WSL下使用git克隆失败解决
  • 结合PyMuPDF+pdfplumber,删除PDF指定文本后面的内容
  • 京准电钟:NTP校时服务器于安防监控系统应用方案
  • GitHub教程
  • 每日一题——无重复字符的最长子串
  • java 与 c++在遍历 map 数据结构上的一些差异
  • Android系统_Surface绘制流程
  • NVIDIA GPU 架构详解:Pascal、Volta、Turing、Ampere、Ada、Hopper、Blackwell
  • windows DeepSeek RAGFlow构建本地知识库系统
  • 剑指 Offer II 040. 矩阵中最大的矩形
  • Protocol Buffers在MCU上的nanopb介绍及使用详解
  • Oracle OCP认证考试考点详解083系列01
  • 计算机网络---SYN Blood(洪泛攻击)
  • 【计算机网络入门】初学计算机网络(十)(重要)
  • Kaldi环境配置与Aishell训练
  • 基于STM32的智能家居中控系统
  • 426.8万人次!长三角铁路创单日客发量历史新高
  • 五一期间全国高速日均流量6200万辆,同比增长8.1%
  • “网约摩托”在部分县城上线:起步价五六元,专家建议纳入监管
  • 王受文已任中华全国工商业联合会领导班子成员
  • 神舟十九号航天员乘组平安抵京
  • “五一”假期逛上海车展请提前购票,展会现场不售当日票