Cloneable接口

前置知识

Java在处理对象和变量时是不同的.变量传入函数实际上是引用传入函数内,在函数内的变量和函数外传入的变量会使用同一个内存实例中的对象.而基本类型则是会拷贝一份相同的值,相当于方法体内的局部变量.


代码实现
public class Variables {
    private int value =4;
    private String str  ="init String";

    private void initMember(){
        this.value =456;
        this.str = "qwer";
    }

    public static void main(String[] args) {
        Variables variables = new Variables();
        variables.initMember();
        System.out.println(variables.value+"---"+variables.str);
    }
}
```
输出结果
```
456---qwer
```

####Cloneable接口的实现
1 clone分为影子clone和深clone,影子克隆比如在对象中包含了一个变量时,那么这个对象的clone只复制了包含的变量引用.
2 clone的实现需要继承Cloneable接口,然后重写clone()方法.

#####代码实现
```
//实现影子clone
public class CloneA implements Cloneable {
    private int anInt;
    public Object clone(){
        CloneA cloneA =null;
        try {
            cloneA = (CloneA)super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return cloneA;
    }
}
```
```
//实现深clone
public class DeepClone implements Cloneable {
    private String value;
    private CloneA cloneA;

    public Object clone() {
        DeepClone deepClone = null;
        try {
            deepClone = (DeepClone) super.clone();
          //该成员变量实现了Cloneable接口,进行clone
            deepClone.cloneA = (CloneA) cloneA.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return deepClone;
    }
}
```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 6,333评论 0 3
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,950评论 0 62
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,404评论 30 472
  • 《Effective Java》笔记(上) 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造...
    OCNYang阅读 7,604评论 2 17
  • 6 接口与内部类 后面将介绍Java的几种常用的高级技术,掌握以完善自己的Java工具箱。 首先,接口(inter...
    我快要上天啦阅读 3,265评论 0 1

友情链接更多精彩内容