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

jsp网站开发教学视频楚雄市建设规划批前公示在那个网站

jsp网站开发教学视频,楚雄市建设规划批前公示在那个网站,佛山 技术支持 骏域网站建设,上海有哪些大公司Clonable接口 我们船舰了一个人的对象#xff0c;想要克隆一个一模一样的对象#xff0c;可以用到object类里面的克隆方法 object不是所有类的父类吗#xff1f;那为什么用person1点不出这个方法呢#xff1f;可以看一下源码 这是Object类里面的clone方法的声明#xff0…Clonable接口 我们船舰了一个人的对象想要克隆一个一模一样的对象可以用到object类里面的克隆方法 object不是所有类的父类吗那为什么用person1点不出这个方法呢可以看一下源码 这是Object类里面的clone方法的声明native说明这是本地方法底层是由c/c实现的。注意它的访问权限是protected所以再不同包中的子类只可以用super来引用但super又不能静态方法中使用所以我们只能再Person类里面重写一个方法如下 但还是报错注意throws CloneNotSupportedException表示克隆不支持异常语法规定我们需要在main方法后面也加上这一句同时clone方法的返回值是Object类型但在main方法中我们用了它的子类来接收这是向下转型必须要用括号强转如下 但还是报错这就是 CloneNotSupportedException即不支持克隆那么这时Clonable接口就起作用了我们需要让那个被克隆的类去实现Clonable接口如下 空接口/标记接口 我们再看一下接口的源码 发现里面没有任何抽象方法这就是一个空接口或者叫标记接口表示该类可以被拿去克隆 将上面的错误全部修正后person1就可以被克隆了 深拷贝与浅拷贝 现在我们再在person类里面加一个成员变量money它是Money类的 class Money{public double m29.9;} class Person implements Cloneable{public String name;public int age;public Money moneynew Money();public Person(String name, int age) {this.name name;this.age age;}Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();} } public class Test {public static void main(String[] args)throws CloneNotSupportedException {Person person1new Person(张三,20);Person person2(Person)person1.clone();System.out.println(person1:person1.money.m);System.out.println(person1:person2.money.m);System.out.println();person1.money.m99.9;System.out.println(person1:person1.money.m);System.out.println(person1:person2.money.m);} }如上那输出的结果是什么 浅拷贝 按理说即使person2是克隆出来的但它也是一个独立的个体应该不会受person1的影响可却出现了上面的现象实际上在拷贝money时由于money是个引用类型它的值是所指对象的地址在拷贝时就将person1的money的值直接给到了person2的money导致两个money都指向了同一个对象而不是我们想看到的不是同一个对象而只是有一样的值罢了。 这种对于money的拷贝就是浅拷贝 深拷贝 那如何进行深拷贝其实就是再给person2的money另外开辟一块空间然后再将person1的money所指对象的值拷贝到person2的money所指对象。既然要克隆money那么就要让money也支持克隆如下 第二张图的第二行代码是刚刚的浅拷贝在它的基础上再将money也拷贝一份就能实现真正意义上的一式两份也就是深拷贝。那么我们如何将二三行代码合在一起先看一下重写的克隆方法 这个方法是放在哪个类就克隆哪个类由于在person类里面重写的clone方法仅支持person的克隆所以我们可以修改这个克隆方法使他还可以将内部的money也克隆一份而不仅仅是克隆其表面的值如下 可是这个代码有很大的问题当我们用this.clone时就会出现死循环一i那位这是自己调用了自己所以应该修改为用Object类的clone方法即用到super如下 这时修改1的值就不会影响2了 最终代码就是 class Money implements Cloneable{Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();}public double m29.9;} class Person implements Cloneable{public String name;public int age;public Money moneynew Money();public Person(String name, int age) {this.name name;this.age age;}Overrideprotected Object clone() throws CloneNotSupportedException {Person tmp(Person) super.clone();Money money(Money) this.money.clone();tmp.moneymoney;return tmp;} } public class Test {public static void main(String[] args)throws CloneNotSupportedException {Person person1new Person(张三,20);Person person2(Person)person1.clone();//person2.money (Money) person1.money.clone();System.out.println(person1:person1.money.m);System.out.println(person2:person2.money.m);System.out.println();person1.money.m99.9;System.out.println(person1:person1.money.m);System.out.println(person2:person2.money.m);
http://www.huolong8.cn/news/263087/

相关文章:

  • 建设企业网站作用除了91还有什么关键词
  • 海南澄迈住房与建设厅网站微商城网站建设方案
  • 做淘客需要网站wordpress app怎么登录注册
  • 做试题的网站上海手机网站制作公司
  • 建设银行钓鱼网站wamp建设网站大致步骤
  • zencart 网站安装凡科建设网站的步骤
  • 漳州做网站配博大钱少a国外能下载模板的网站
  • 知名网站建设是哪家便宜同城广告发布平台
  • 佛山网站关键词优化公司北京网站编程培训
  • 建站cms源码不用下载的游戏直接玩
  • 网站互动怎么做宁波建设集团
  • 天津做网站选择津坤科技c工作汇报范文
  • 济南传承网站建设李聪网站设计软件开发
  • 个人建设网站服务器怎么解决未成年直播免费观看
  • WordPress网站论文网站降权查下
  • 红鹊豆网络网站站建设服装配件网站建设 中企动力
  • 石家庄建设路网站北京装修公司哪家好十大排名
  • 招远网站建设公司阿里云网站备案后
  • 企业官网型网站建设网站开发的目标
  • 在手机上怎么做微电影网站wordpress 页面和文章
  • 怎样自己做qq网站天津公共资源交易平台官网
  • 智能锁东莞网站建设手机端网站做app
  • 东莞南城网站设计怎么去建一个网站
  • wordpress小说站群各种网站都能打开的浏览器
  • 企业网站改版项目描述做服务网站发展背景
  • wap网站制作需要多少钱企业管理培训课程推广
  • 怎么更改网站备案信息吗做3d模型的叫什么牛的网站
  • 响应式网站设计布局张北网站建设
  • 做游戏网站赚钱么院网站建设情况报告
  • 网站怎么伪静态网站新农村网站建设