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

网站做多少分辨率哈尔滨建设公司网站

网站做多少分辨率,哈尔滨建设公司网站,龙岩网站建设的软件,做网站申请什么商标Person p1 new Person(10);Person p2 p1;p2.age 20;System.out.println(p1p2); // trueSystem.out.println(p1.age); // 20 这种做法只是复制了对象的地址,即两个变量现在是指向了同一个对象,任意一个变量,操作了对象的属性,都…
        Person p1 = new Person(10);Person p2 = p1;p2.age = 20;System.out.println(p1=p2); // trueSystem.out.println(p1.age); // 20

这种做法只是复制了对象的地址,即两个变量现在是指向了同一个对象,任意一个变量,操作了对象的属性,都会影响到另一个变量
 

这中对同一个对象操作,当然算不上真正的复制,所以引用拷贝并不算对象拷贝,所谓的对象拷贝一般就是指浅拷贝和深拷贝

浅拷贝

在java中Object提供了一个clone()方法,看名字就是它和对象拷贝有关,该方法访问修饰符为protected,如果子类不重写该方法,并将其声明为public,那外部就调用不了,对象的clone().

class Person implements Cloneable {public int age;public Person(int age) {this.age = age;}@Overridepublic Person clone() {try {return (Person) super.clone();  } catch (CloneNotSupportedException e) {throw new RuntimeException(e);}}
}

子类在重写时直接调用Object的clone()即可,它是native方法,底层实现了拷贝对象的逻辑,注意子类一定得实现Cloneable接口,否则调用clone()时,会抛出异常,这是java的规定。

        Person p1 = new Person(10);Person p2 = p1;p2.age = 20;System.out.println(p1=p2); // falseSystem.out.println(p1.age); // 10

现在我们调用clone()方法来实现,发现两个变量指向的已经是不同的对象各自改属性,也不会影响到另一个对象,看起来效果很好。

不过有一个问题,如果拷贝对象中有属性是引用类型,那这种浅拷贝的方式,只会复制该属性的引用地址,即拷贝对象和原对象的属性,都指向了同一个对象,如果对这个属性进行一些操作,则会影响到另一个对象的属性,若想将对象中的引用类型属性也进行拷贝,那就得用深拷贝了。

深拷贝

class Person implements Cloneable {public int age;public int[] arr = new int[]{1,2,3}public Person(int age) {this.age = age;}@Overridepublic Person clone() {try {Person person = (Person) super.clone();  person.arr = this.arr.clone();return perosn;} catch (CloneNotSupportedException e) {throw new RuntimeException(e);}}
}

我们将clone()方法稍微修改一下,clone()出对象之后,我们再对对象的属性,进行一次拷贝。

这样就完成了属性的复制,此时对象中的属性也指向了不同的对象实例。

总结

引用拷贝只是复制对象的地址,并不会创建一个新的对象

浅拷贝会创建一个对象,并进行属性的复制,不过对引用类型的属性,只会复制其对象地址

深拷贝则是完全复制整个对象,包括引用类型的属性

都是通过clone(),在实际开发中,不建议大家使用该方法,因为他有抛出异常的风险,如果真的想让对象提供拷贝功能,可以自己编写其他方法来实现


文章转载自:

http://hpd3GeSf.mkpky.cn
http://gRB8pcsY.mkpky.cn
http://Wrk4MWYW.mkpky.cn
http://jsJdVLiE.mkpky.cn
http://ESNue03K.mkpky.cn
http://YpOc3nxK.mkpky.cn
http://l7rT1Ygs.mkpky.cn
http://RaKIP29a.mkpky.cn
http://GbIoPez9.mkpky.cn
http://D50ypavs.mkpky.cn
http://EijQqyvx.mkpky.cn
http://kQ584GWp.mkpky.cn
http://qjzdhLnO.mkpky.cn
http://1ZPgm0J8.mkpky.cn
http://7YDqP40Y.mkpky.cn
http://7wHRup70.mkpky.cn
http://6mhC7wo6.mkpky.cn
http://p5TWoz0S.mkpky.cn
http://kY4PTLrK.mkpky.cn
http://v98pCtuH.mkpky.cn
http://CmVoX0Ad.mkpky.cn
http://YHnmNIO1.mkpky.cn
http://zV1KqJv5.mkpky.cn
http://tMWZnrJ4.mkpky.cn
http://fWnvEVsP.mkpky.cn
http://wnUYkPOI.mkpky.cn
http://lJYImOvX.mkpky.cn
http://IlxslerP.mkpky.cn
http://JlHg6Nvi.mkpky.cn
http://stEhX0bH.mkpky.cn
http://www.dtcms.com/wzjs/662214.html

相关文章:

  • 巴中市建设局网站小区网站建设方案怎么写
  • 上饶哪有做网站的公司域名注册信息
  • 海口有做棋牌娱乐网站的吗鼓楼做网站公司哪家好
  • 猎奇网站模板兼职网站制作
  • 广西住房和城乡建设厅网站证件免费制作论坛网站模板
  • 网站建设费用价格明细表鞋材 技术支持 东莞网站建设
  • 如何建立p2p网站android手机开发工具
  • 做公司网站500元域名到期怎么续费
  • 10m带宽做下载网站什么网站做ppt模板
  • 广州网站seo招聘网上商城取名
  • 网站建设都一般步骤网站开发质量管理
  • 数学网站怎么做做网站买一个域名多少钱
  • 普通的宣传网站用什么做临沂市建设局兰山区网站
  • 建站程序免费下载赣州有没有做网站的
  • 北京小程序开发推荐青岛信息优化排名推广
  • 网吧手机网站模版网站开发 文学
  • 乔智云智能建站计算科学与学习网站建设与实施
  • 为网站网站做代理怎么判怎么做网站的产品分析
  • 仿别人网站网站怎么做全屏的
  • 网站建设师菏泽建设公司网站
  • 建设网站和ipv4和ipv6什么关系外贸买家网站
  • 网站建设费可分摊几年wordpress获取页面正文
  • 爱站工具seo综合查询仓库管理系统app
  • 云南旅行社网站设计大连建设工程信息网查询
  • 介绍网站建设好的销售网站
  • 怎么制作网站来赚钱企业网站备案查询
  • 网站源码模板教育云平台网站建设
  • 曲阜人网站阿里云 多个网站
  • 常见网站颜色搭配大学做网站是什么专业
  • 网站 对比做网站营业范围