「Javaclon方法」java clone方法

博主:adminadmin 2022-12-20 08:00:08 81

今天给各位分享Javaclon方法的知识,其中也会对java clone方法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java中实现栈时的问题----------Java高手请进

p2=p1不是Point对象赋值,而是引用赋值。这和C++不一样。

在java里边,p1、p2、point和temp都是引用,而不是对象本身,引用就象C++的指针。上面的程序中,p2=p1的结果是,p2指向的对象和p1相同,他们都指向了p1=new Point()语句创建的对象。而Point p2=new Point(); 创建的对象,因为p2不再引用它而变成垃圾,java会自动删除。

java的引用赋值就象C++的指针赋值,就类似C++程序:

Point * p1=new Point();

Point * p2=new Point();

p2=p1;

所以你上面的程序也有这个问题,temp=point;其实没什么用,效果把Point temp=new mypoint(); 创建的对象删除了,被压栈的对象还是point,所以去掉这两句,效果完全一样。

如果你想复制一个新对象压栈,应该用java的clone方法,

temp=point.clone();

不过Point必须实现Clonable接口,并且正确实现它。

java对象复制的问题

public class CloneNotSupportedExceptionextends Exception

当调用 Object 类中的 clone 方法复制对象,但该对象的类无法实现 Cloneable 接口时,抛出该异常。

重写 clone 方法的应用程序也可能抛出此异常,指示不能或不应复制一个对象。

以上引自java api 中文文档

因为楼主的test没有实现Cloneable接口..

在哪里可以看到JAVA的object类中clone方法的源代码?

看不到的,是C代码。听说Java开源了,你倒是可以去官网上看看。

调用中实现clonable接口并给出方法。

public class Example implements Clonable {

int valueToClone;

public Object clone() {

Object o = super.clone();

(Example) o).valueToClone = valueToClone;

return o;

}

}

另外参见API. 有的书建议不采用Clonable,因为非常难实现一个完美的Clone 链,且方法本身返回Object需要cast,并不美观。可以自己写一个接口代替。

java.lang.Object 中的clone方法

他说的特殊处理就是加一个 implements Clonable

没有任何方法

不过你是自己写的类,

那个继承的clone()方法复制不了内容。

只能复制引用.我想你不只需要复制引用而已

给你提供个想法:

自己覆盖clone()方法,用io来写。

java中任何类都可以看作是object类的子类,那么自己定义的类能直接调用object类的clone()方法吗?

并不能,

在Object中clone是一个 protected native 的方法

要调用Object的clone方法,必须实现Clonable接口,在运行时,jvm会做检测,如果没有实现Clonable接口,就会抛出CloneNotSupportedException异常。

如果在类的内部调用clone方法,可以直接调用父类的clone方法

要在外部调用它,必须定义一个public的方法,然后调用它的父类的clone方法

Javaclon方法的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java clone方法、Javaclon方法的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-20,除非注明,否则均为首码项目网原创文章,转载请注明出处。