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

北京网站建设官网免费网站可以下载

北京网站建设官网,免费网站可以下载,旅游的网站怎么做,罗湖网站制作一、介绍 Java中自带的原型模式是clone()方法。该方法是Object的方法,native类型。他的作用就是将对象的在内存的那一块内存数据一字不差地再复制一个。我们写简单类的时候只需要实现Cloneable接口,然后调用Object::clone方法就可实现克隆功能。这样实现…

一、介绍

Java中自带的原型模式是clone()方法。该方法是Object的方法,native类型。他的作用就是将对象的在内存的那一块内存数据一字不差地再复制一个。我们写简单类的时候只需要实现Cloneable接口,然后调用Object::clone方法就可实现克隆功能。这样实现的方式是浅拷贝。

 1、深复制与浅复制:

(1)浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象;

//原型类
public class Resume implements Cloneable,Serializable{private static final long serialVersionUID = 1L;private String name;private String sex;private String age;Resume(String name,String sex,String age){this.name=name;this.sex=sex;this.age=age;}/*** 设置个人信息* @param sex* @param age*/public void setPersonInfo(String sex,String age){this.sex=sex;this.age=age;}//描述public void dispaly(){System.out.println("姓名:"+name+"\t年龄:"+age+"\t性别:"+sex);}public Object clone(){try {Resume resume = (Resume)super.clone();return resume;}catch (Exception e){return null;}}}

  客户端:

public class MainTest {public static void main(String[] args){Resume resume = new Resume("大鸟","男","25");Resume resume2 = (Resume)resume.clone();resume2.setPersonInfo("男","26");resume.dispaly();resume2.dispaly();}
}

 (2)深复制:把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象。

      新增对象类

public class WorkExperience implements Cloneable{private String workDate;private String company;public WorkExperience(String workDate,String company){this.workDate=workDate;this.company=company;}public WorkExperience(){}/**省略set、get方法*/public Object clone(){try {return super.clone();}catch (Exception e){return null;}}}
public class Resume implements Cloneable,Serializable{private static final long serialVersionUID = 1L;private String name;private String sex;private String age;private WorkExperience workExperience;Resume(String name,String sex,String age){this.name=name;this.sex=sex;this.age=age;this.workExperience=new WorkExperience();}/*** 添加私有构造 克隆工作经历* @param workExperience*/private Resume(WorkExperience workExperience){this.workExperience= (WorkExperience) workExperience.clone();}/*** 设置个人信息* @param sex* @param age*/public void setPersonInfo(String sex,String age){this.sex=sex;this.age=age;}/*** 设置工作经历* @param workDate* @param company*/public void setWorkExperience(String workDate, String company){this.workExperience.setWorkDate(workDate);this.workExperience.setCompany(company);}//描述public void dispaly(){System.out.println("姓名:"+name+"\t年龄:"+age+"\t性别:"+sex);System.out.println("工作经历:"+workExperience.getWorkDate()+"\t"+workExperience.getCompany());}/*** 重写了克隆方法* @return*/public Object clone(){try {Resume resume = new Resume(this.workExperience);//调用私有构造器实现工作经历克隆//给对象属性重新赋值--最终返回的是深复制的resume对象resume.name=this.name;resume.sex=this.sex;resume.age=this.age;return resume;}catch (Exception e){return null;}}}

 客户端

public class MainTest {public static void main(String[] args){Resume resume = new Resume("大鸟","男","25");resume.setWorkExperience("2015-2016","南京工作");Resume resume2 = (Resume)resume.clone();resume2.setPersonInfo("男","26");resume2.setWorkExperience("2016-2018","上海工作");resume.dispaly();resume2.dispaly();}
}

二、应用:

1、数据集对象DataSet,有Clone()方法和Copy()方法,Clone用于复制结构而不复制数据,实现了原型模式的浅复制;Copy不但复制结构也复制数据,实现了原型模式的深复制。

http://www.ds6.com.cn/news/43913.html

相关文章:

  • 做电台需要的文章从哪个网站找百度识图扫一扫
  • wordpress主题网站模板绍兴seo计费管理
  • 做网站和做app哪个贵网址怎么创建
  • 厚街做网站价格百度识图搜索
  • 天津河东网站建设公司链爱交易平台
  • 企业源代码济南做seo排名
  • 福田附近公司做网站建设哪家效益快视频网站推广
  • 网站开发流程指什么流感用什么药最好
  • 企业网站快照更新seo实战培训教程
  • 网站建设一个购买链接seo人才
  • 能打开国家禁止网站的浏览器软文网站有哪些
  • 大气html5网络公司网站源码盘古百晋广告营销是干嘛
  • 罗湖网站建设报价百度代理公司查询
  • 站长要维护网站攀枝花seo
  • 品牌网站首页设计怎么做好市场宣传和推广
  • 网站建设分析从哪几个方面优化方案电子版
  • 美食网页设计模板中文广州软件系统开发seo推广
  • 做前端网站用什么软件写代码吗巨量数据分析入口
  • 网站建设报价单 非常好用的报价模板.doc2345网址导航删除办法
  • wordpress同标题关键字页面优化的方法
  • 自助式网站制作seo刷点击软件
  • 网站导航广告怎么做seo效果最好的是
  • 做网站的启蒙思想网站标题优化排名
  • 菜鸟做网站泰安百度推广代理
  • 网站的整合竞价排名服务
  • 网站空间的申请律师推广网站排名
  • 东莞公司网站怎么做视频seo优化教程
  • 网站建设商城模板百度快照怎么优化排名
  • 加强网站信息建设方案网店推广培训
  • 上海网站优化排名品牌营销策划方案范文