(50)克隆Clone()

来源:互联网 发布:网络管理app 编辑:程序博客网 时间:2024/05/22 09:32

    克隆就是复制自身。Java方法调用实际上通过引用对象来调用,被调用方法能够修改对象的状态,因此,在调用方法之前克隆对象,可保证原对象的安全,防止被修改。

    调用对象的clone()方法就是在JVM(Java虚拟机)里复制该对象的当前状态,或者说新创建一个对象,并复制就对象的所有域。

    缺省状态下,克隆并没有激活。

    要能够克隆必须先做以下两步:

    ①覆盖对象的clone()方法;

    ②实现空的Cloneable接口。

package com.xuan.oop;public class Clone1  implements Cloneable{//调用super.clone()方法克隆该对象public Object clone(){try{return super.clone();}catch(CloneNotSupportedException e){throw new InternalError(e.toString());}}int x;transient int y;//将被克隆,但不能被串行化public static void main(String[] args) {Clone1 c=new Clone1();c.x=100;c.y=200;try{Object d=c.clone();System.out.println("c="+c);System.out.println("d="+d);}catch(Exception e){System.out.println("Now that's a surprise!");System.out.println(e);}}//将当前对象输出为字符串@Overridepublic String toString() {return "Clone1["+x+","+y+"]";}}

输出:

c=Clone1[100,200]
d=Clone1[100,200]

0 0