`
chandler
  • 浏览: 81590 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java学习笔记---Cloneable接口心得

阅读更多

          class Clone implements Cloneable{
               public  String name;
               public  int      age

                public Object clone(){
                    Object reslut=null;
                    try{
                            result = (Clone)super.clone()
                    }catch(CloneNotSupported e){
                    }
                    return result;
                }
           }
 
          以上这段代码是写一个可以最简单的Clone的实现。其实关于Cloneable的接口,我有下面3点认识
          1.实现Cloneable接口的目的只是为了能够调用super.clone(),其他没有任何意义。在这里,你可以override clone方法。实际操作中,你也完全可以把这super.clone()放在其他方法里面。这里没有任何的限制。换句话说。Cloneable和clone方法没有任何关系。
          而这点的意义在于,如果说你需要把Clone开放出去的话,你必须自己写方法来实现。同时,如果你不调用super.clone()。而实现Cloneable接口。我觉得没什么意义。至少我觉得如果要开放给其他类使用。自己写一个新方法。然后返回值类型改成其本身。要方便一点。
          2.这里的复制只是潜复制。而不是深复制。
          举例来说哦。
          Clone foo = new Clone();
          Clone bar = foo.clone();
          System.out.println(bar.name ==foo.name)  //true
 
          其实这一块,我的理解是,父类的Clone方法,或者说哦Object的clone方法。只是复制类中的变量,而不是引用。所以所有的引用,如果要实现深复制,都是需要自己写代码来实现的。

分享到:
评论

相关推荐

    java-java-lang包.pdf

    Java编程语言中的java.lang包是一个核心包,它提供了Java语言运行时的基础类库,包含了Java程序运行的基本数据类型、异常处理类以及一些用于系统级别的工具类和接口。java.lang包中的类和接口不需要程序员显示地导入...

    effective java 读书笔记

    - Item11:谨慎覆盖clone方法,因为它涉及到对象的深拷贝,可能需要实现`Cloneable`接口并处理异常。 - Item12:实现Comparable接口使对象能够自我比较,这对于排序和集合操作非常有用。 5. **类和接口的设计** ...

    JavaSE-接口部分笔记

    - 标准接口是Java API的一部分,如`Cloneable`、`Comparable`等。 - 这些接口定义了一些基本的行为规范,如复制对象、比较对象大小等。 综上所述,Java中的接口是一个非常强大的特性,它不仅可以用于定义类之间的...

    JAVA经典教材笔记

    - **Java学习概述** - Java作为一种广泛使用的编程语言,其学习路径包括掌握基本语法、理解面向对象编程思想、熟悉标准库使用等。 - **JAVA发展概述** - Java的发展历程:从1995年由Sun Microsystems公司发布以来...

    java基础难点-更新版

    * 简单克隆可以使用 clone() 方法,但是需要实现 Cloneable 接口 * 深度克隆需要重新克隆对象的属性 6. 字符串: * 字符串会被 Java 放到常量池中,相同的字符串会合并成一个 * 字符串的比较可以使用 equals() ...

    Java期末复习-常用类库

    对象克隆技术通过实现Cloneable接口和覆盖clone方法实现对象的复制。Arrays类提供了对数组的各种操作,如排序和复制。Comparable接口用于定义对象的自然排序,而Comparator接口则用于自定义比较逻辑。 正则表达式...

    java 学习笔记

    在Java学习笔记中,我们重点关注Java的IO(输入/输出)操作、常用类库以及集合框架。 1. **Java IO**: - **File类**:提供了文件和目录的基本操作,如创建、删除、重命名等。 - **RandomAccessFile**:支持对...

    Java设计模式-原型模式详解

    例如,我们可以定义一个 Student 类,实现 Cloneable 接口,并重写 clone() 方法: ```java public class Student implements Cloneable { private int id; private String name; private int score; // 复制新...

    学习笔记 java\CoreJava笔记\CoreJava_day11

    CoreJava_day11的学习笔记主要涵盖了集合框架,特别是关于List、Set和Map接口,以及ArrayList、Vector和LinkedList等具体实现类的知识点。 首先,集合框架是用来存放对象的对象,它提供了一组接口和类,使得我们...

    JAVA学习笔记第十二天示例代码

    在JAVA学习过程中,第十二天的内容主要聚焦于Object类、Date类、Calendar类以及时间的格式化显示。这些是Java编程基础中的重要组成部分,对于理解面向对象编程和时间处理至关重要。 首先,Object类是所有Java类的根...

    学习笔记java\CoreJava笔记\CoreJava_day08

    在Core Java的学习中,理解并熟练掌握访问权限对于编写安全、健壮的代码至关重要。以下是对不同访问权限的详细解释: 1. **public**: - 公共访问权限允许任何包内外的类访问。如果一个成员(如方法或字段)被声明...

    Java 课件

    Java提供了一个`clone()`方法,但要注意它需要正确实现`Cloneable`接口。序列化(Serialization)则是将对象转换为字节流,以便于存储或网络传输,然后再反序列化恢复原对象。 6. **JAVA-L15-CollectionFramework....

    Java API接口详述.rar

    2. `java.lang.Cloneable`: 标记接口,表示对象可以被克隆。 3. `java.lang.Runnable`: 实现此接口的类可以作为线程执行的任务。 4. `java.util.List`, `Set` 和 `Map`: 这些接口定义了集合框架的核心接口,提供数据...

    Java设计模式学习笔记.pdf

    在学习Java设计模式时,掌握其概念、应用、优点和缺点非常重要。设计模式是软件开发中经常使用的一种通用解决方案模板,用于解决特定上下文中的常见问题。它们源于设计模式的研究,通常被认为是软件设计中的最佳实践...

    day16-Map、可变参数、Cloneable.pdf

    Map接口是Java集合框架的重要组成部分,它是一种双列集合,用于存储键值对的数据结构。Map中的每个元素都包含一个键(Key)和一个值(Value),键不能重复,但值可以。Map接口提供了丰富的操作方法来处理这些键值对...

    java review guide java复习资料

    ### Java复习资料知识点详解 #### 一、数组中是否可以包含对象类型和基本类型元素?...通过这些知识点的学习,有助于更好地理解和掌握Java语言的基础知识,并为后续深入学习和实践打下坚实的基础。

    韩顺平_Java设计模式笔记.docx

    通过以上内容,我们可以看到韩顺平老师的Java设计模式笔记涵盖了设计模式的基础概念、常见面试题解析、设计原则等内容,并通过具体案例来阐述设计模式的实际应用价值,旨在帮助学习者深刻理解并掌握设计模式,从而在...

    corejava培训笔记

    - 对象克隆需满足两个条件:实现`Cloneable`接口并覆盖`clone()`方法。 - 浅拷贝复制对象引用,而深拷贝不仅复制对象本身,还复制引用对象的内容。字符串因其不可变性,在浅拷贝中即可满足需求。 3. **equals()...

Global site tag (gtag.js) - Google Analytics