当前位置: 首页 > news >正文

建筑给排水代做网站关键词林俊杰的寓意

建筑给排水代做网站,关键词林俊杰的寓意,广州哪个网站建设公司好,北京制作网站的公司在Java中#xff0c;我们如何实现一个对象的克隆呢#xff1f; 在Java中实现对象的克隆#xff0c;我们要用到Cloneable接口。克隆也分为浅克隆和深克隆。 1.实现浅克隆 1.重写clone方法 当我们想直接通过前面已经建立好的对象来调用Object类中的clone方法时#xff0c;…在Java中我们如何实现一个对象的克隆呢 在Java中实现对象的克隆我们要用到Cloneable接口。克隆也分为浅克隆和深克隆。 1.实现浅克隆 1.重写clone方法 当我们想直接通过前面已经建立好的对象来调用Object类中的clone方法时发现不行。因为Object类中的clone方法是被protected修饰的只能在子类的内部调用。如下图 所以我们要在Student类中重写Object类中的clone方法。  在Student类中重写了clone方法如下图所示 重写之后我们发现就能调用clone方法了。  调用之后还会报错。 原因如下图 我们发现clone方法的返回值类型为Object类型所以我们要进行强制类型转换。 我们发现还会报出以下错  解决方法 在main函数后加下图红色方框里面的字段。 到这一步浅克隆就完成了。 1.完整代码 class Student implements Cloneable{public String name;public int age;public Student(String name,int age){this.namename;this.ageage;}Overridepublic String toString() {return Person{ name name \ , age age };}Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} } public class Test {public static void main(String[] args)throws CloneNotSupportedException {Student studentnew Student(张三,18);Student student1(Student) student.clone();System.out.println(student);System.out.println(student1);} } 运行代码 发现克隆成功了。 2.浅克隆堆栈图 2.实现深克隆 先来看以下代码 class Money{double money24; } class Student implements Cloneable{public String name;public int age;Money mnew Money();public Student(String name,int age){this.namename;this.ageage;}Overridepublic String toString() {return Student{ name name \ , age age , money m.money };}Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} } public class Test {public static void main(String[] args)throws CloneNotSupportedException {Student studentnew Student(张三,18);Student student1(Student) student.clone();System.out.println(student);System.out.println(student1);student1.m.money8;} }money一开始的值是24但是我们将student1的money的值改变为8时student的money的值也会变为24因为上面代码只实现了浅克隆没有实现深克隆。 上面的堆栈图如下 由于m的值都是克隆过来的所以两个引用都指向一个money修改了一个money的值自然会影响两个的m指向的值。 想解决这个问题我们直接克隆一份money就行了。如下面的堆栈图所示。 代码实现 class Money implements Cloneable{double money24;Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} } class Student implements Cloneable{public String name;public int age;Money mnew Money();public Student(String name,int age){this.namename;this.ageage;}Overridepublic String toString() {return Student{ name name \ , age age , money m.money };}Overrideprotected Object clone() throws CloneNotSupportedException {Student tmp(Student)super.clone();//克隆了Student里面的值tmp.m (Money) this.m.clone();//克隆moneyreturn tmp;} } public class Test {public static void main(String[] args)throws CloneNotSupportedException {Student studentnew Student(张三,18);Student student1(Student) student.clone();System.out.println(student);System.out.println(student1);student1.m.money8;System.out.println(修改student1的money的值后);System.out.println(student);System.out.println(student1);} }运行代码 到这里深克隆就实现了。 3.总结 浅克隆克隆的是值深克隆克隆的是引用。
http://www.pierceye.com/news/528933/

相关文章:

  • 一般网站开发的硬件要求视觉冲击力的网站设计
  • 昆明做网站建设的公司哪家好广西建设培训网
  • 国字类型网站有哪些内容百度seo分析工具
  • 免费浪漫网页制作网站html的常用标签
  • 上行10m做网站服务仿简书wordpress博客主题
  • 网站建设中网页代码做网站的是不是程序员
  • 做网站需要的技术做网站优化好的网络公司
  • 为什么要更新网站登录四川省住房和城乡建设厅官网
  • 注册网站不用手机短信验证的网站营销型网站的建设起步
  • 国内高清图片素材网站推荐元素领域wordpress
  • 沙朗做网站公司网页制作免费网站制作
  • 营销型网站重要特点是网站播放视频速度优化
  • 建设厅报名网站做PHP网站前端网站进不去
  • 网站开发后台 amp建网页还是网站
  • 云南个旧建设局网站宁波关键词优化品牌
  • 网站建设方案应急处置wordpress我爱水煮鱼
  • 网页设计模板html代码班级主题广东seo推广
  • 西安 网站托管西安网站关键词排名
  • 做网站用discuz还是wp汉狮做网站公司郑州
  • 网站运营服务中心建设方案网页免费制作网站
  • 做网站销售有前景怎么注销网站
  • 福州建设网站设计电子商务网站平台有哪些
  • 扁平化色块风格的网站企业网站建设客户需求调查问卷
  • 网站建设产品服务痘痘如何去除效果好
  • 展会电子商务网站如何建设单页网站如何做
  • 济南软件外包邢台seo服务公司
  • 网站建设2017主流代码语言垂直型电商网站如何做
  • 重庆 网站定制推广产品怎么发朋友圈
  • 网站建设公司初心经典企业网站欣赏
  • 本地网站开发公司网站建设 产品拍照