黑马程序员技术交流社区
标题:
colone方法怎么用,我试了如下三种方法都失败了
[打印本页]
作者:
我自信我很牛
时间:
2013-3-16 21:00
标题:
colone方法怎么用,我试了如下三种方法都失败了
本帖最后由 烟磊磊 于 2013-3-16 23:54 编辑
class Demo2
{
public static void main(String[] args)
{
Student s1=new Student();
//Student s2=s1.clone();
//Object s2=s1.clone();
Student s2=(Object)s1.clone();
System.out.println("Hello World!");
}
}
class Student
{
}
//注释掉的是我试出来的三种方法
复制代码
作者:
彭颖
时间:
2013-3-16 22:11
本帖最后由 彭颖 于 2013-3-16 22:13 编辑
用法举个简单例子看一下怎么用
public class A implements Cloneable {
public String name[];
public A(){
name=new String[2];
}
public Object clone() {
A o = null;
try {
o = (A) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return o;
}
}
复制代码
-------------------------
然后测试
A a1=new A();
A a2=new A();
a1.name[0]="a";
a1.name[1]="1";
a2=(A)a1.clone();
a2.name[0]="b";
a2.name[1]="1";
System.out.println("a1.name="+a1.name);
System.out.println("a1.name="+a1.name[0]+a1.name[1]);
System.out.println("a2.name="+a2.name);
System.out.println("a2.name="+a2.name[0]+a2.name[1]);
复制代码
-----------------
结果:
a1.name=[Ljava.lang.String;@757aef
a1.name=b1
a2.name=[Ljava.lang.String;@757aef
a2.name=b1
复制代码
----------------
a1.name,a2.name的hash值都是@757aef,也就是说这种clone对name数组是clone他们的地址
作者:
黄玉昆
时间:
2013-3-16 22:51
http://bbs.itheima.com/thread-37902-1-1.html
这个帖子有关于克隆的一些知识,希望对你有帮助
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2