「Javaclon方法」java clone方法
今天给各位分享Javaclon方法的知识,其中也会对java clone方法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、Java中实现栈时的问题----------Java高手请进
- 2、java对象复制的问题
- 3、在哪里可以看到JAVA的object类中clone方法的源代码?
- 4、java.lang.Object 中的clone方法
- 5、java中任何类都可以看作是object类的子类,那么自己定义的类能直接调用object类的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方法的信息别忘了在本站进行查找喔。
发布于:2022-12-20,除非注明,否则均为
原创文章,转载请注明出处。