如何进行Java对象的克隆

 我来答
老冯文库
2017-05-28 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8734

向TA提问 私信TA
展开全部

以数组对象的克隆为例。

Java程序:

public class Main {
public static void main(String[] args) {
int[] a = {1, 2, 3};
int[] b = a.clone(); //b是a的克隆,a和b指向不同的数组
int[] c = a; //c是a的引用,a和c指向同一个数组

a[0] = 10;

System.out.println("a[0] = " + a[0]);
System.out.println("b[0] = " + b[0]);
System.out.println("c[0] = " + c[0]);
}
}


运行测试:

a[0] = 10
b[0] = 1
c[0] = 10

自定义类的情况如下:

public class Main {
public static void main(String[] args) {
A a1 = new A();
a1.name = "Smith";

A a2 = a1;
A a3 = (A) a1.clone();

a1.name = "White";

System.out.println("a1 : " + a1.name);
System.out.println("a2 : " + a2.name);
System.out.println("a3 : " + a3.name);
}
}

class A implements Cloneable {
public String name = null;

@Override  
    public Object clone() {  
        A a = null;  
        try{  
            a = (A)super.clone();
        }
        catch(CloneNotSupportedException e) {  
            e.printStackTrace();  
        }  
        return a;
    }  
}


运行测试:

a1 : White
a2 : White
a3 : Smith
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式