`

Java中Object.clone方法的用途

 
阅读更多
clone方法是用来复制一个对象。不同于“=”。
对于值类型的数据是可以通过“=”来实现复制的。但是对于引用类型的对象,“=”只能复制其内存地址,使对象的引用指向同一个对象,而不会创建新的对象。clone则可以创建与原来对象相同的对象。举个例子:
有一个Car类
Car c1 = new Car();
Car c2 = c1;
这两句事实上只创建了一个对象。只不过c1和c2指向了同一个对象。
如果上面的两句改为:
Car c1 = new Car();
Car c2 = c1.clone();
那么就有了两个对象,而且这两个对象的内容是一样的。(所有的属性值相同)
分享到:
评论

相关推荐

    Java中clone方法共6页.pdf.zip

    在Java编程语言中,`clone()`方法是一个非常重要的概念,特别是在对象复制和克隆方面。这个方法来源于`java.lang.Object`类,所有Java类都默认继承了这个方法。本资料"Java中clone方法共6页.pdf.zip"可能包含了关于...

    clone()示例源码

    在Java编程语言中,`clone()`方法是一个非常重要的概念,特别是在处理对象复制和克隆时。这个方法源自`Object`类,是所有Java类的基类。`clone()`的使用通常涉及到深度复制和浅复制的概念,这两者在数据结构和内存...

    Java -核心类库 Object类常方法 Math类常用方法 System类常用方法 基本类型包装类常用方法等

    因此了解并掌握`Object`类的方法对于深入理解Java编程至关重要。 1. **toString() 方法**: - **用途**:提供了一个方便的方式来打印或展示对象的信息。 - **默认行为**:返回对象的内存地址。 - **重写示例**:...

    Java的Object类讲解案例代码 equals()、hashCode()、finalize()、clone()、wait()

    这个源码资源是关于Java中的Object类的讲解案例代码。Object类是所有Java类的根类,它定义了一些常用的方法,例如equals()、hashCode()、toString()等。本案例代码将详细展示Object类的使用方法,并提供一些实际场景...

    对象克隆(clone)详解.docx

    在Java中,克隆主要涉及到`Object`类中的`clone()`方法,以及两种不同的克隆类型:浅克隆和深克隆。 一、克隆的原理与应用 `clone()`方法的工作原理是在堆上创建一个新的对象,这个新对象的内存分配与源对象相同,...

    Java中的继承.docx

    `final`关键字在Java中有多种用途,它可以修饰类、方法和变量。当用于修饰类时,意味着该类不能被其他类继承。对于方法,`final`表示该方法不能在子类中被重写。例如: ```java public final class FinalClass { //...

    详谈Java中Object类中的方法以及finalize函数作用

    Object类中包含了一些基础且重要的方法,这些方法在Java编程中扮演着关键角色。接下来我们将详细讨论这些方法以及`finalize()`函数的作用。 1. `clone()`方法:这是一个保护方法,用于实现对象的浅复制。如果一个类...

    liang-faan_JavaDesignPattern.pdf

    在Java中,通常实现Cloneable接口并重写Object类的clone()方法来使用原型模式。 3.3 建造者模式(Builder Pattern) 建造者模式是一种创建型设计模式,它允许用户通过指定复杂对象的类型和内容,从而一步一步地...

    JDK中有关23个经典设计模式的示例

    `java.lang.Object`的`clone()`方法就是原型模式的基础。 6. 组合模式(Composite):将对象组合成树形结构以表示“部分-整体”的层次结构。如`java.awt.Component`和`java.awt.Container`,它们可以组合形成复杂的...

    Thinking in Java 中文第四版+习题答案

    12.2.5 Object.clone()的效果 12.2.6 克隆合成对象 12.2.7 用Vector进行深层复制 12.2.8 通过序列化进行深层复制 12.2.9 使克隆具有更大的深度 12.2.10 为什么有这个奇怪的设计 12.3 克隆的控制 12.3.1 副本构建器 ...

    JAVA编程规范化

    public Object clone() { try { CounterSet obj = (CounterSet) super.clone(); obj.packets = (int[]) packets.clone(); obj.size = size; return obj; } catch (CloneNotSupportedException e) { throw ...

    Thinking in Java简体中文(全)

    12.2.5 Object.clone()的效果 12.2.6 克隆合成对象 12.2.7 用Vector进行深层复制 12.2.8 通过序列化进行深层复制 12.2.9 使克隆具有更大的深度 12.2.10 为什么有这个奇怪的设计 12.3 克隆的控制 12.3.1 副本构建器 ...

    java联想(中文)

    12.2.5 Object.clone()的效果 12.2.6 克隆合成对象 12.2.7 用Vector进行深层复制 12.2.8 通过序列化进行深层复制 12.2.9 使克隆具有更大的深度 12.2.10 为什么有这个奇怪的设计 12.3 克隆的控制 12.3.1 副本构建器 ...

    GitHub 上标星 115k+ 的 Java 教程.pdf

    - 如果两个对象根据`equals(Object obj)`方法相等,则它们的`hashCode()`方法必须产生相同的整数结果。 - **toString()**:返回表示该对象的字符串形式。 - 默认返回的是对象的内存地址,通常需要重写此方法以提供...

    java总结.txt

    - **作为所有类的基类**:在 Java 中,`Object` 类是所有类的父类,即所有自定义类都是直接或间接继承自 `Object` 类。 - **基本功能**:`Object` 类提供了几个常用方法,如 `toString()`、`equals()` 和 `...

    Object类和Scanner类

    ### Object类和Scanner类 #### 一、Object类详解 ...通过以上介绍可以看出,`Object` 类和 `Scanner` 类分别代表了Java中对象的基本行为和简单的输入处理功能,它们都是Java编程不可或缺的一部分。

    java面试宝典

    在Java语言中,`clone()`方法属于`Object`类的一个受保护的方法,它主要用于实现对象的浅拷贝。当一个对象需要被复制时,`clone()`方法提供了一种便捷的方式。但是,需要注意的是,并非所有对象都支持克隆功能,只有...

Global site tag (gtag.js) - Google Analytics