A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 烟磊磊 于 2013-3-16 23:54 编辑
  1. class Demo2
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 Student s1=new Student();
  6.                 //Student s2=s1.clone();
  7.                 //Object s2=s1.clone();
  8.                 Student s2=(Object)s1.clone();
  9.                 System.out.println("Hello World!");
  10.         }
  11. }
  12. class Student
  13. {
  14. }
  15. //注释掉的是我试出来的三种方法
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

2 个回复

倒序浏览
本帖最后由 彭颖 于 2013-3-16 22:13 编辑

用法举个简单例子看一下怎么用
  1. public class A implements Cloneable {
  2.         public String name[];
  3.         
  4.         public A(){
  5.                 name=new String[2];
  6.         }

  7.         public Object clone() {
  8.                 A o = null;
  9.                 try {
  10.                         o = (A) super.clone();
  11.                 } catch (CloneNotSupportedException e) {
  12.                         e.printStackTrace();
  13.                 }
  14.                 return o;
  15.         }
  16. }
复制代码
-------------------------
然后测试
  1. A a1=new A();
  2. A a2=new A();
  3. a1.name[0]="a";
  4. a1.name[1]="1";
  5. a2=(A)a1.clone();
  6. a2.name[0]="b";
  7. a2.name[1]="1";
  8. System.out.println("a1.name="+a1.name);
  9. System.out.println("a1.name="+a1.name[0]+a1.name[1]);
  10. System.out.println("a2.name="+a2.name);
  11. System.out.println("a2.name="+a2.name[0]+a2.name[1]);
复制代码
-----------------
结果:
  1. a1.name=[Ljava.lang.String;@757aef
  2. a1.name=b1
  3. a2.name=[Ljava.lang.String;@757aef
  4. a2.name=b1
复制代码
----------------
a1.name,a2.name的hash值都是@757aef,也就是说这种clone对name数组是clone他们的地址

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
http://bbs.itheima.com/thread-37902-1-1.html
这个帖子有关于克隆的一些知识,希望对你有帮助
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马