欢迎来到天天文库
浏览记录
ID:12939265
大小:33.50 KB
页数:3页
时间:2018-07-19
《java浅度克隆 clone()》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/***该类必须继承Cloneable*实现其clone()方法*修饰符**/publicclassCloneStudentimplementsCloneable{privateintage;privateStringname;privateCloneTeacherteacher;publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}publicStringgetName(){returnname;}publicvoidsetName(Stringnam
2、e){this.name=name;}publicCloneTeachergetTeacher(){returnteacher;}publicvoidsetTeacher(CloneTeacherteacher){this.teacher=teacher;}protectedObjectclone()throwsCloneNotSupportedException{return(CloneStudent)super.clone();}}publicclassCloneTeacher{privateintage;privateStrin
3、gname;publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}}publicclassCloneTest{publicstaticvoidmain(Stringargs[])throwsCloneNotSupportedException{CloneTeacherteacher=newClon
4、eTeacher();teacher.setAge(40);teacher.setName("张老师");CloneStudentstudent1=newCloneStudent();student1.setAge(20);student1.setName("王学生");student1.setTeacher(teacher);/***对象克隆,那么克隆出来的对象有两个特性*1两个对象的内容是一样的*2修改复制出来的对象的内容是不会改变原有对象的值的*3浅度克隆仅仅复制克隆的对象,而不复制引用对象,那复制出来的对象对引用对象的修改将会
5、改变原来的值**/System.out.println("---------------------我是原有对象中属性的值-----------------------");System.out.println(student1.getAge());System.out.println(student1.getName());CloneStudentstudent2=(CloneStudent)student1.clone();System.out.println("------------我是复制的对象,看看我和原来对象的属性值相同
6、吗?--------------");System.out.println(student2.getAge());System.out.println(student2.getName());System.out.println("---------复制出来的对象改变的自己的属性值看看原来对象的值改变吗?-----------");System.out.println(student1.getAge());System.out.println(student1.getName());System.out.println("------
7、---这是原有对象引用对象的属性值-----------");System.out.println(student1.getTeacher().getAge());System.out.println(student1.getTeacher().getName());student2.getTeacher().setName("李老师");student2.getTeacher().setAge(50);System.out.println("---------复制出来的对象改变的引用对象的属性值看看原来对象的引用对象值改变吗?---
8、--------");System.out.println(student1.getTeacher().getAge());System.out.println(student1.getTeacher().getName
此文档下载收益归作者所有