标题:
关于java clone的问题
[打印本页]
作者:
逐鹿苍狼
时间:
2005-2-6 21:40
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通宝答谢!!
作者:
kingofworl
时间:
2005-2-6 22:03
运行的结果是c1=5.0
c2=5.0 没问题呀,还是我没理解
作者:
逐鹿苍狼
时间:
2005-2-6 23:03
可为什么我运行之后,c1=5.0 c2=null???
作者:
kingofworl
时间:
2005-2-6 23:11
你的代码绝对正确,我怕看错特意copy试了
图片附件:
1.JPG
(2005-2-6 23:11, 19.67 K) / 该附件被下载次数 163
http://xycq.org.cn/forum/attachment.php?aid=5143
作者:
kingofworl
时间:
2005-2-6 23:15
你看,跟你打得一模一样
附件:
A.java
(2005-2-6 23:15, 172 bytes) / 该附件被下载次数 187
http://xycq.org.cn/forum/attachment.php?aid=5144
作者:
kingofworl
时间:
2005-2-6 23:21
我看咱俩唯一可能不一样的地方就是super.clone(); 是不是继承的类的这个方法被重写过,其实我是初学者,要是说的不对请多多见谅
附件:
B.java
(2005-2-6 23:21, 288 bytes) / 该附件被下载次数 203
http://xycq.org.cn/forum/attachment.php?aid=5145
作者:
逐鹿苍狼
时间:
2005-2-7 03:09
我也知道这段代码不会有太大问题。我把你的拷贝后运行,结果和你的一样,c1,c2都为10。
可是我运行我给你的这个就会出现不能拷贝的情况,很奇怪。
不过还是要谢谢你。
作者:
逐鹿苍狼
时间:
2005-2-7 03:10
11111
附件:
A.java
(2005-2-7 03:10, 554 bytes) / 该附件被下载次数 210
http://xycq.org.cn/forum/attachment.php?aid=5152
作者:
逐鹿苍狼
时间:
2005-2-7 03:23
确实很重写了,因为clone()方法是由Object类提供的,将Object类的protected改写为public。
钱已汇入。
作者:
kingofworl
时间:
2005-2-7 08:18
奇怪,开始的那个要是不小心打错了哪里那编译就通不过呀,是不是有什么病毒了 ,我今天突然发现存款变成整了,不过怕没利息不敢去看,原来如此,太客气了,给我88取个吉利就可以了,我给别人都是这么给的,先暂借两天
欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/)
Powered by Discuz! 5.0.0