标题: 关于java clone的问题
性别:男-离线 逐鹿苍狼

杨虚侯谏议大夫

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
柱国(正二品)
组别 翰林学士
级别 镇西将军
好贴 8
功绩 816
帖子 3834
编号 1613
注册 2003-10-23
家族 泡泡营


public class A
{
  public static void main(String[] args)
  {
    B c1 = new B(5);
    System.out.println("c1: "+c1);
    B c2 = (c1.clone();
    System.out.println("c2: "+c2);
   }
}


class B implements Cloneable
{
  double radius;

  public B(double radius)
  {
    this.radius=radius;
  }

  public Object clone()
  {
    try
    {
      return super.clone();
    }
    catch (CloneNotSupportedException ex)
    {
      return null;
    }
  }

  public String toString()
  {
    return "radius "+radius;
  }
}


请问这段程序有什么问题?
为什么在运行的时候c1对象的指总是不能拷贝到c2中?
谁能解答,谢谢。
1000通宝答谢!!


顶部
性别:男-离线 逐鹿苍狼

杨虚侯谏议大夫

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
柱国(正二品)
组别 翰林学士
级别 镇西将军
好贴 8
功绩 816
帖子 3834
编号 1613
注册 2003-10-23
家族 泡泡营


可为什么我运行之后,c1=5.0   c2=null???


顶部
性别:男-离线 逐鹿苍狼

杨虚侯谏议大夫

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
柱国(正二品)
组别 翰林学士
级别 镇西将军
好贴 8
功绩 816
帖子 3834
编号 1613
注册 2003-10-23
家族 泡泡营


我也知道这段代码不会有太大问题。我把你的拷贝后运行,结果和你的一样,c1,c2都为10。
可是我运行我给你的这个就会出现不能拷贝的情况,很奇怪。
不过还是要谢谢你。
顶部
性别:男-离线 逐鹿苍狼

杨虚侯谏议大夫

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
柱国(正二品)
组别 翰林学士
级别 镇西将军
好贴 8
功绩 816
帖子 3834
编号 1613
注册 2003-10-23
家族 泡泡营


11111


附件: A.java (2005-2-7 03:10, 554 bytes)
该附件被下载次数 143
顶部
性别:男-离线 逐鹿苍狼

杨虚侯谏议大夫

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
柱国(正二品)
组别 翰林学士
级别 镇西将军
好贴 8
功绩 816
帖子 3834
编号 1613
注册 2003-10-23
家族 泡泡营


确实很重写了,因为clone()方法是由Object类提供的,将Object类的protected改写为public。
钱已汇入。
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2025-2-10 22:02
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.010828 second(s), 10 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP