zoukankan      html  css  js  c++  java
  • 如何实现Cloneable接口?

     

    在Java中,如果用赋值运算符将一个对象赋值给另一个,只有这个对象的引用会被拷贝,所以改变其中一个对象会对另一个对象产生影响。
    Java使用Object的clone()方法来拷贝一个对象的内容到另一个对象,当一个需要拷贝的对象包含其他对象的引用时就会出现问题。
    可以实现Cloneable接口来重载Object类的clone方法。

    下面这个例子就是展示如何实现cloneable接口的:

    public class CloneExp implements Cloneable {

    private String name;
    private String address;
    private int age;
    private Department depart;
    public CloneExp(){

    }
    public CloneExp(String aName, int aAge, Department aDepart) {

    this.name = aName;
    this.age = aAge;
    this.depart = aDepart;
    }

    protected Object clone() throws CloneNotSupportedException {

    CloneExp clone=(CloneExp)super.clone();

    // 执行Department的一个浅拷贝
    clone.depart=(Department)depart.clone();
    return clone;

    }
    public static void main(String[] args) {

    CloneExp ce=new CloneExp();

    try {
    // 执行CloneExp的深拷贝
    CloneExp cloned=(CloneExp)ce.clone();
    } catch (CloneNotSupportedException e) {
    e.printStackTrace();
    }

    }
    }
  • 相关阅读:
    线性回归的从零开始实现
    比赛总结
    计数学习笔记
    DP计数问题
    多项式学习笔记
    数据结构学习笔记
    子集运算学习笔记
    待学习
    ICPC2018焦作 题解
    ICPC2018焦作 H题 Can You Solve the Harder Problem?
  • 原文地址:https://www.cnblogs.com/hephec/p/4557139.html
Copyright © 2011-2022 走看看