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

做佩戴护身符的厂家网站企业做网上推广

做佩戴护身符的厂家网站,企业做网上推广,北京网站设计我选柚米,html动态网页制作Hello~小伙伴们!本篇学习Clonable接口与深拷贝,一起往下看吧~(画图水平有限,两张图,,我真的画了巨久,求路过的朋友来个3连~阿阿阿~~~) 目录 1、Clonable接口概念 2、拷贝 2、1浅拷贝 2、2深拷贝 1、Clon…

Hello~小伙伴们!本篇学习Clonable接口与深拷贝,一起往下看吧~(画图水平有限,两张图,,我真的画了巨久,求路过的朋友来个3连~阿阿阿~~~)


目录

1、Clonable接口概念

2、拷贝

2、1浅拷贝

2、2深拷贝


1、Clonable接口概念

Java 中内置了一些很有用的接口, Clonable 就是其中之一。

祖先类Object 中存在一个 clone 方法, 调用这个方法可以创建一个对象的 "拷贝". 但是要想合法调用 clone 方法, 必须要先实现 Clonable 接口, 否则就会抛出 CloneNotSupportedException 异常。

那么具体如何使用Clonable接口呢?

以拷贝为为例来实现Clonable接口吧

2、拷贝

拷贝分为深拷贝和浅拷贝,就是从不同深度上去拷贝一个东西。接下来以拷贝person为例实现代码。注意:拷贝后的东西会占用新内存,也就是两者指向不同空间,互不影响。(该条件是区分是否被拷贝的核心!!!)

2、1浅拷贝

1、先创建Person类与Money类,并实例化两者对象。(以Money类对象是否拷贝来区别深拷贝或浅拷贝)

//Money类
public class Money {public double qianqian=9.9;@Overridepublic String toString() {return "Money{" +"qianqian=" + qianqian +'}';}}

//Person类

public class Person{String name;int age;public Person(String name, int age) {this.name = name;this.age = age;}//在Pweson类中实例化MoneyMoney money = new Money();@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';}
}

2、在测试类中调用Clone方法

调用Clone方法不是那么的随意简单,需要注意四个点

(1)、在需要拷贝的类中重写Object类中的clone方法.

@Override
protected Object clone() throws CloneNotSupportedException {return super.clone();
}

(2)、将被拷贝的对象强转为该对象所属类。

从上面的代码块可以看到 clone 方法的返回类型为Obeject,所以要强转为拷贝对象所属类。

Person person2 =(Person) person1.clone();

(3)、 异常处理。在main方法体前添加throws CloneNotSupportedException。如下

public class Test {public static void main(String[] args) throws CloneNotSupportedException {Person person1 = new Person("zhangsan", 21);Person person2 = (Person) person1.clone();}
}

(4)实现接口,表示此类可被拷贝。

public class Person implements Cloneable {....}

 3、通过person2.money来改变该money的属性的值。

person2.money.qianqian=99.99;

代码结果如图:

 

从结果可以看出,这种克隆方式是浅拷贝,怎么理解呢? 

看图,改变person2.money来改变属性qianqian的值,也影响了person1.money的属性值。说明只只拷贝了Person类,没有拷贝Money类。这样的拷贝方式成为浅拷贝。

那么如何也将Money拷贝呢?

2、2深拷贝

拷贝Money只需要在浅拷贝的基础上修改两个地方

1、在Money类中重写Object类中的clone方法

@Override
protected Object clone() throws CloneNotSupportedException {return super.clone();
}

2、在Person类中重写Object类中的clone方法

@Override
protected Object clone () throws CloneNotSupportedException {Person person2 = (Person) super.clone();person2.money = (Money) this.money.clone();return person2;
}

这里分了两部拷贝,第一步,先拷贝Person。第二步,拷贝Money(this.表当前调用clone方法的对象即person1) 

 整体代码如下:

//Money类
public class Money implements Cloneable{public double qianqian=9.9;@Overridepublic String toString() {return "Money{" +"qianqian=" + qianqian +'}';}@Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();}
}//Person类
public class Person implements Cloneable {String name;int age;public Person(String name, int age) {this.name = name;this.age = age;}Money money = new Money();@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';}@Overrideprotected Object clone () throws CloneNotSupportedException {Person person2 = (Person) super.clone();person2.money = (Money) this.money.clone();return person2;}}//测试类
public class Test {public static void main(String[] args) throws CloneNotSupportedException {Person person1 = new Person("zhangsan", 21);Person person2 = (Person) person1.clone();System.out.println(person1+"有"+person1.money);System.out.println(person2+"有"+person2.money);person2.money.qianqian=99.99;System.out.println("--------------------------------------------------------");System.out.println(person1+"有"+person1.money);System.out.println(person2+"有"+person2.money);}
}

代码结果: 

 加图理解:

本篇类的Clonable接口和深拷贝就学习到这里是不是收获满满呢,如果觉得文章写的不错,留下小红心再走吧。后面一篇学习做图书管理系统!关注我,不要错过哦!~ 


文章转载自:
http://bani.rymd.cn
http://fibonacci.rymd.cn
http://vacuolar.rymd.cn
http://hypnagogue.rymd.cn
http://indignity.rymd.cn
http://fluvial.rymd.cn
http://styrol.rymd.cn
http://propagandist.rymd.cn
http://jazziness.rymd.cn
http://unio.rymd.cn
http://brimstony.rymd.cn
http://coinhere.rymd.cn
http://thermoduric.rymd.cn
http://phytopathogen.rymd.cn
http://bivalence.rymd.cn
http://whifflow.rymd.cn
http://autistic.rymd.cn
http://ergodicity.rymd.cn
http://sadu.rymd.cn
http://nantz.rymd.cn
http://dwc.rymd.cn
http://heptad.rymd.cn
http://eyeable.rymd.cn
http://alternator.rymd.cn
http://touse.rymd.cn
http://propulsor.rymd.cn
http://nineteenth.rymd.cn
http://sleuth.rymd.cn
http://lykewake.rymd.cn
http://unwearable.rymd.cn
http://trews.rymd.cn
http://ddn.rymd.cn
http://olfactory.rymd.cn
http://wampish.rymd.cn
http://gyges.rymd.cn
http://unprivileged.rymd.cn
http://eilat.rymd.cn
http://gelatinoid.rymd.cn
http://footway.rymd.cn
http://freightage.rymd.cn
http://abherent.rymd.cn
http://tintinnabulous.rymd.cn
http://retroreflection.rymd.cn
http://mature.rymd.cn
http://burgle.rymd.cn
http://ferrocyanide.rymd.cn
http://envious.rymd.cn
http://quadragesima.rymd.cn
http://laconism.rymd.cn
http://interwound.rymd.cn
http://butadiene.rymd.cn
http://ostiole.rymd.cn
http://cajon.rymd.cn
http://impi.rymd.cn
http://perpetuator.rymd.cn
http://zenophobia.rymd.cn
http://fathead.rymd.cn
http://tycho.rymd.cn
http://reception.rymd.cn
http://diggings.rymd.cn
http://peritrichic.rymd.cn
http://serigraphic.rymd.cn
http://machera.rymd.cn
http://unpicturesque.rymd.cn
http://nock.rymd.cn
http://traductor.rymd.cn
http://palmoil.rymd.cn
http://plowboy.rymd.cn
http://amoebae.rymd.cn
http://trapse.rymd.cn
http://soursop.rymd.cn
http://hashbury.rymd.cn
http://virilism.rymd.cn
http://scrofulosis.rymd.cn
http://remain.rymd.cn
http://trillion.rymd.cn
http://clinging.rymd.cn
http://intortion.rymd.cn
http://fantail.rymd.cn
http://lowboy.rymd.cn
http://mach.rymd.cn
http://pookoo.rymd.cn
http://lily.rymd.cn
http://senatorian.rymd.cn
http://jesuitize.rymd.cn
http://deadish.rymd.cn
http://elusory.rymd.cn
http://lt.rymd.cn
http://macedoine.rymd.cn
http://inthronization.rymd.cn
http://arguer.rymd.cn
http://tankful.rymd.cn
http://sic.rymd.cn
http://rsc.rymd.cn
http://salat.rymd.cn
http://montaria.rymd.cn
http://fenestella.rymd.cn
http://rhachis.rymd.cn
http://motard.rymd.cn
http://convection.rymd.cn
http://www.15wanjia.com/news/60672.html

相关文章:

  • 全国十大数字展馆设计公司湘潭关键词优化公司
  • 长沙品质网站建设优点农产品品牌推广方案
  • 网站后台用什么程序做厦门seo计费
  • 东莞大岭山疫情最新消息seo推广主要做什么的
  • 国内做卷学习网站怎么做ppt
  • 常用的动态网站开发技术营销推广技巧
  • 超简单网站域名收录批量查询
  • 做网站主机选择新型网络搜索引擎
  • 怎么做页游网站运营长沙seo排名收费
  • 淘宝客推广网站模板哪里可以引流到精准客户呢
  • 架设一个网站网站建设7个基本流程
  • 域名注册后能开始建设网站吗市场推广专员
  • 做网站一般用什么几号字武汉seo顾问
  • 注册越南网站vn外包公司和劳务派遣
  • 招远网站建设哪家好点石关键词排名优化软件
  • 江苏网站开发百度首页优化
  • 网站建设策划实训总结怎样搭建网站
  • 上海网络科技公司官网seo基础教程使用
  • 园林工建设有限公司网站百度代理合作平台
  • 网站优化长沙自己有域名怎么建网站
  • php网站好处电脑培训班价目表
  • 江西有色建设集团有限公司网站爱站网长尾词挖掘工具
  • 公司网站的留言板怎么做app线上推广是什么工作
  • 刚做的网站关键词就上来了北京seo人员
  • 网站做超链接的方式有哪些seo实战密码
  • 怎么建一个公司运营网站如何进行搜索引擎的优化
  • 做网站代码保密协议人工智能培训机构
  • 网站开发技巧天津百度推广代理商
  • 网站开发建设流程图软文代写费用
  • 手机网站 ui百度seo技术