Java对象的复制

Java对象的复制

ID:38179363

大小:37.50 KB

页数:3页

时间:2019-05-24

Java对象的复制_第1页
Java对象的复制_第2页
Java对象的复制_第3页
资源描述:

《Java对象的复制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、金桥重要补充资料Java对象的复制Java.lang.Object.clone()方法 Java的所有类都是从java.lang.object类继承而来,而Object类提供下面的方法对对象进行复制:ProtectedObject clone()子类当然也可以把方法置换掉,提供满足自己的复制方法。对象的复制有一个基本问题,就是对象通常都有对其它对象的引用。当使用Object类的clone()方法来复制一个对象时,此对象对其它对象的引用也可同时会被复制一份。Java语言提供的Cloneablb接口只起一个作用,就是在运行时期通知jav

2、a虚拟机可以安全地这个类上使用clone()方法。通过调用这个clone()方法可以得到一个对象的复制。由于Object类本身并不实现Cloneable接口,因此如果所考虑的类没有实现Cloneablb接口时,调用clone()方法会抛出CloneNotSupportedException异常。  系统可以在pandToClone里面置换掉java.lang.Object提供的clone()方法,以便控制复制的过程。在下面的例子里,pandaToClone是一个带有几个性质的类,它将java.lang.Object类的克隆方法置换掉

3、了,由一个新的clone()方法提供复制自己实例的任务,如代码清单1所示。代码清单1:pandaTOlone类的源代码class PandaToCloneimplementsCloneablb{privateintheight,weight,age;*构造子publicpandaToClone(intheight,intweight){this.age=0;this.weight=weight;this.height=height;}/***年龄的贬值方法*/publicvoidsetAge(intage){thia.age=age

4、;}/***年龄的取值方法*/publicintgetAge(){returnaga;}/***身高的取值方法*/publicintgetHeight()-3-金桥重要补充资料{/***体重的取值方法*/publicintgetWeight(){returnweight;}/***克隆方法*/publicObjectclone(){//创建一个本类的对象,并返还给调用者pandaToClonetemp=newpandaToClone(height,weight);temp.setAge(age);//注意返还值的类型必须是Objec

5、tretun(Object)temp;}}客户端的源代码如代码清单2所示。代码清单2:客户端的源代码publicclassCient{publicstaticvoidmain(Sting[]args){thispanda=newpandaToCone(15,25);thispanda.setAge(3);//Createthesecondobjectbycloningthefirstthatpanda=(pandaToClone)thispanda.clone();//Nowdescribetheseobjectsonthesyst

6、emconsole:System.out.println(“Ageofthispanda:”+thispanda.getAge());System.out.prntln(“height:”+thispanda.geHeight());System.out.println(“weight:”+thispanda.getWeight());System.out.println(“Ageofthatpanda:”+thatpanda.getAge())”System.out.println(“height:”+thatpanda.getH

7、eight());System.out.printhn(“weight:”+thatpanda.getWeight());}}在运行时,客户端首先创建了一个pandaTClone的实例,并且给各个性质赋值。然后将此对象复制一份。系统运行的结果如代码清单3所示。 代码清单3:运行的结果Ageofthispanda:3Height:15Weight:25Ageofthatpanda:3-3-金桥重要补充资料Heiget:15Weight:25运行的结果可以看出,克隆对象与原对象的性质是完全一样的。client对象持有一个pandaTCo

8、ne对象的引用,而后client对象调用pandaToCone.clone()方法得到一份复制后的对象。这其实就是原始模型模式。clone()方法要满足以下条件:clone()方法将对象复制了一份并返还给调用者。所谓“复制”的含义与c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。