Java 教程 目录

Java对象克隆

在 Java 中,对象克隆指的是创建一个与原始对象具有相同属性的新对象。对象克隆通常分为浅克隆和深克隆两种方式。浅克隆只会复制对象本身,而深克隆会连同对象内部的所有引用对象一起复制。

浅克隆

Java 中提供了 Cloneable 接口和 clone() 方法来实现对象的浅克隆。使用浅克隆时,只需实现 Cloneable 接口并重写 clone() 方法即可。下面是一个简单的示例:

-- -------------------- ---- -------
------ ----- ------ ---------- --------- -
    ------- ------ -----
    ------- --- ----

    ------ ------------- ----- --- ---- -
        --------- - -----
        -------- - ----
    -

    ---------
    ------ ------ ------- ------ -------------------------- -
        ------ --------------
    -

    ------ ------ ---- ------------- ----- -
        ------ ------- - --- --------------- ----

        --- -
            ------ ------- - -------- ----------------
            -------------------------------------- -- -- -------
            ------------------------------------- -- -- --
        - ----- --------------------------- -- -
            --------------------
        -
    -
-

在上面的示例中,Person 类实现了 Cloneable 接口并重写了 clone() 方法。在 main 方法中,我们创建了一个 Person 对象 person1,然后通过 clone() 方法克隆了一个新的 Person 对象 person2

深克隆

要实现对象的深克隆,需要在对象的 clone() 方法中对所有引用对象进行递归复制。下面是一个深克隆的示例:

-- -------------------- ---- -------
------ ----- ------- -
    ------- ------ -------
    ------- ------ -----

    ------ -------------- ------- ------ ----- -
        ----------- - -------
        --------- - -----
    -

    -- ------- --- -------
-

------ ----- ------ ---------- --------- -
    ------- ------ -----
    ------- --- ----
    ------- ------- --------

    ------ ------------- ----- --- ---- ------- -------- -
        --------- - -----
        -------- - ----
        ------------ - --------
    -

    ---------
    ------ ------ ------- ------ -------------------------- -
        ------ ------------ - -------- --------------
        -------------------- - --------- ----------------
        ------ -------------
    -

    ------ ------ ---- ------------- ----- -
        ------- ------- - --- ------------ ---- ---- --------
        ------ ------- - --- --------------- --- ---------

        --- -
            ------ ------- - -------- ----------------
            -------------------------------------- -- -- -------
            ------------------------------------- -- -- --
            ----------------------------------------------------- -- -- ---- ---- ---
            --------------------------------------------------- -- -- ------
        - ----- --------------------------- -- -
            --------------------
        -
    -

    -- ------- --- -------
-

在上面的示例中,Person 类包含一个 Address 类型的引用对象 address。在 clone() 方法中,我们首先调用 super.clone() 复制对象本身,然后再对 address 对象进行深度复制。

这就是 Java 中对象克隆的基本概念和实现方式。通过对象克隆,我们可以在不影响原始对象的情况下创建新的对象,从而方便地进行对象复制和传递。

上一篇: Java Object类
下一篇: Java数组
纠错
反馈