对象的深拷贝,浅拷贝

来源:互联网 发布:山西九鼎软件记账 编辑:程序博客网 时间:2024/05/23 01:13

对象的clone:

要想实现某个类的对象的clone,可以按以下几点来操作:

1.这个类必须实现Cloneable这个标示性接口;

2.这个类要重写父类的clone方法;

3.把这个clone方法访问权限设置为public;

4.这个clone方法中调用了super.clone()方法,返回当前类的引用;

5.以上四步仅仅是实现了对象的浅复制,浅拷贝,浅克隆。

注意:对象的浅拷贝,得到一个新的对象,这个新的对象里面的原生数据类型都是拷贝出来的;但是拷贝出来的对象的引用类型指向的和原对象指向的对象是一样的,也就是说,对于引用类型变量,拷贝的只是引用变量,这个引用指向的对象并没有拷贝。

 

要实现对象的深拷贝:

1.思路,利用序列化和反序列化来获得一个对象的拷贝;

2.这个对象必须实现Serializable接口;

3.在这个对象的类中定义一个方法,方法里面通过将这个类的对象写到一个流中,再从流中读取回来这么一个操作,得到一个新的这个类的对象;

注意:深拷贝和浅拷贝相比,会把对象中的所有变量都拷贝出一份新的,因此相同引用类型的变量会分别指向两个不同的对象,但是这两个对象的内容是一样的。

0 0
原创粉丝点击