有关clone方法的使用注意

来源:互联网 发布:阿里云服务器怎么换ip 编辑:程序博客网 时间:2024/06/04 00:47

在C++语言中,当开发人员自定义复制构造函数时,会存在浅复制和深复制之分。

java语言在重载clone()方法也是存在这个问题,当类中只有一些基本数据类型的时候,采用上述方法就可以,但是当类中包含一些对象时,就需要用到深复制了,实现的方法是:对对象调用clone()方法完成复制之后,接着对对象中的非基本数据类型的属性也调用clone()方法完成深复制。


浅复制和深复制的区别?

浅复制:被复制对象的所有变量都含有与原来对象相同的值,而所有对其他对象的引用仍然指向原来的对象。换句话说,浅复制仅仅复制考虑的对象,而不复制它所引用的对象。

深复制:被复制对象的所有变量都含有与原来对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制的新对象,而不再是原有的那些被引用的对象。深复制就是将复制的对象所引用的对象都复制了一遍。

0 0
原创粉丝点击