首页 > 编程 > Java > 正文

java 深拷贝 浅拷贝

2019-11-06 08:21:15
字体:
来源:转载
供稿:网友

1、Object类有一个保护接口,但是继承之后重写也无法使用,必须继承Cloneable接口,以下是关于深浅拷贝的测试代码:

package com.busymonkey.test;public class son implements Cloneable {		PRivate String name;	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}		public Object clone() {		Object out = null;		try {			out = super.clone();		} catch (CloneNotSupportedException e) {			e.printStackTrace();		}		return out;	}}

package com.busymonkey.test;public class Test implements Cloneable {		private String name;	private String text;	public son p = new son();	    public static void main(String[] args) {    	Test test1 = new Test("name1","111");    	test1.p.setName("wahaha");    	Test test2 = null;		test2 = (Test)test1.clone();    	test2.setName("name2");    	test2.setText("222");    	test2.p.setName("yeah");    	System.out.println(test1.getName()+" : "+test1.getText()+" : "+test1.p.getName());    	System.out.println(test2.getName()+" : "+test2.getText()+" : "+test2.p.getName());    }    public Object clone() {    	Test out = null;    	try {			out = (Test) super.clone();		} catch (CloneNotSupportedException e) {			e.printStackTrace();		}    	//out.p = (son)p.clone();//深拷贝    	return out;    }    	public Test(String name, String text) {		super();		this.name = name;		this.text = text;	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public String getText() {		return text;	}	public void setText(String text) {		this.text = text;	}}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表