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

网站做数据分析的意义随州网站

网站做数据分析的意义,随州网站,西部数码网站备案,软件工程专业就业方向及前景分析在java中如何对对象进行拷贝呢?我们可以使用Object类中的clone方法。 一、浅拷贝 在使用clone方法对对象进行拷贝的时候,需要注意: 1.需要重写clone方法; 2.clone方法的返回值是Object类,需要强制类型转化&#xf…

在java中如何对对象进行拷贝呢?我们可以使用Object类中的clone方法。

一、浅拷贝

在使用clone方法对对象进行拷贝的时候,需要注意:

1.需要重写clone方法

2.clone方法的返回值是Object类,需要强制类型转化

3.使用clone方法必须先实现Cloneable接口

//深克隆
public class Test {//对抛出的异常进行处理public static void main(String[] args)throws CloneNotSupportedException {Person person=new Person("zhangsan",10);Person person1=(Person)person.clone();System.out.println("修改前:"+person.m.money);System.out.println("修改前:"+person1.m.money);person1.m.money=99.9;System.out.println("修改后:"+person.m.money);System.out.println("修改后:"+person1.m.money);//对person1.m.money修改后,person.m.money也被修改}
}
class Money {public double money=9.9;
}
//想要进行拷贝的类必须实现Cloneable接口
@SuppressWarnings("ALL")
class Person implements Cloneable{public int age;public String name;public Person(String name,int age) {this.age = age;this.name = name;}Money m=new Money();@Overridepublic String toString() {return "Person{" +"age=" + age +", name='" + name + '\'' +'}';}//重写clone方法protected Object clone()throws CloneNotSupportedException{return super.clone();}
}

运行结果:

可以看到当我们将person1.m.money修改为99.9是, person.m.money也被修改为99.9,这是为什么呢?

原因是我们只对person 进行了拷贝,而没有对m进行拷贝,因此person1和person中的m为同一个引用,它们指向同一个对象,像这种不完全的拷贝方式叫做浅拷贝。

二、深拷贝

如果想将上面的对象m也拷贝一份,也很简单,与拷贝person类似。

//深克隆
public class Test {public static void main(String[] args)throws CloneNotSupportedException {Person person=new Person("zhangsan",10);Person person1=(Person)person.clone();System.out.println("修改前:"+person.m.money);System.out.println("修改前:"+person1.m.money);person1.m.money=99.9;System.out.println("修改后:"+person.m.money);System.out.println("修改后:"+person1.m.money);}
}
//Money类也实现Cloneable接口,对clone方法进行重写
class Money implements Cloneable{public double money=9.9;protected Object clone()throws CloneNotSupportedException{return super.clone();}
}
//想要进行拷贝的类必须实现Cloneable接口
@SuppressWarnings("ALL")
class Person implements Cloneable{public int age;public String name;public Person(String name,int age) {this.age = age;this.name = name;}Money m=new Money();@Overridepublic String toString() {return "Person{" +"age=" + age +", name='" + name + '\'' +'}';}protected Object clone()throws CloneNotSupportedException{//clone的返回值为Object类,因此需要强制类型转换Person tmp=(Person) super.clone();//调用Monmey类中重写的clone方法,对m进行拷贝tmp.m=(Money) this.m.clone();return tmp;}
}

运行结果: 

http://www.yayakq.cn/news/369996/

相关文章:

  • wap网站开发联系电话网页脚本设计
  • 制作响应式网站手机网站导航栏特效
  • 网站建设服务多少钱网站治做啊app
  • 商贸有限公司网站案例提供邯郸做移动网站
  • 网站设计原型图怎么做国外哪些做问卷的网站
  • 新郑市网站建设小程给公司做网站要多少钱
  • 禅城区响应式网站重庆响应式网站设计
  • 建设信基金管理有限公司网站网站建设方案实施
  • 门户网站建设的意义站长工具seo优化系统
  • 网络推广专员所需知识西安seo交流
  • 太原网站seo搜索优化做社区网站怎么做
  • 企业商务网站建设指数分布的分布函数
  • 怎么做外贸网站的邮箱签名网站知名度
  • 云南省建设厅一级建造师网站自己怎么设计口罩
  • 网页设计公司有哪些岗位常州市网站优化
  • 网站设计个人越秀电子商务网站建设
  • 闲鱼网站如何赚钱crm客户管理系统的功能
  • 网站开发人员工资做软件赚钱吗
  • phpcms学校网站模板帮企业做网站赚钱吗
  • 国内金融行业网站开发上海建立公司网站
  • 长春网站制作允许吗做网站海口
  • 校园网站建设的缺陷可信网站认证
  • 电子商务网站设计实验报告证券公司如何拉客户
  • 做生存曲线的网站网站规划 时间
  • 惠州网站建设l优选蓝速科技建设公司的网站制作
  • 做推广的网站那个好定制网站
  • 百度推广引流怀化网站优化推荐
  • 企业做网站一般多少钱如何做网站充值
  • 简单的网站建立一般多少钱网络推广运营
  • 卖衣服的网站建设济南定制网页设计