您的位置:首页 > 编程语言 > Java开发

java之对象克隆

2017-01-30 20:30 796 查看
package 克隆测试;

public class 克隆 {

static class Sj implements Cloneable {
String ss;
StringBuffer sss;
int a;
Integer aa;
int aaa[] = new int[3];

public Sj clone() throws CloneNotSupportedException {
Sj e;
e = (Sj) super.clone();
e.aaa = this.aaa.clone();
return e;
}

}
public static void main(String args[]) throws CloneNotSupportedException {
Sj qq = new Sj();
qq.ss = new String("111");
qq.sss = new StringBuffer("1111");
qq.a = 3;
qq.aa = new Integer(4);
qq.aaa[1] = 44;
Sj qqq = qq.clone();
qqq.ss = new String("222");
qqq.sss = new StringBuffer("2222");
qqq.a = 2;
qqq.aa = new Integer(22);
qqq.aaa[1] = 22;
System.out.println(qq.ss);
System.out.println(qq.sss);
System.out.println(qq.a);
System.out.println(qq.aa);
System.out.println(qq.aaa[1]);
}

}
下面是运行结果:
111
1111
3
4
44
可以看出,int等基本类型,Integer等基本类型的封装,String和StringBuffer可以直接克隆
数组类型,集合类型,自定义类型需要继承Cloneable接口并重写clone()函数
并且int等基本类型,Integer等基本类型的封装,String和StringBuffer在函数传参过程中可以认为传递的是值
数组类型,集合类型,自定义类型在函数传参过程中可以当做是传递的是对象的引用


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: