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

手机网站建设电话咨询手机排行榜2024前十名最新

手机网站建设电话咨询,手机排行榜2024前十名最新,网站建设公司怎么做的,免费源码资源源码站在线一.原型模式 通过 n e w 产生一个对象需要非常繁琐的数据准备或访问权限#xff0c;则可以使用原型模式。 \color{red}{通过new产生一个对象需要非常繁琐的数据准备或访问权限#xff0c;则可以使用原型模式。} 通过new产生一个对象需要非常繁琐的数据准备或访问权限#xf…一.原型模式 通过 n e w 产生一个对象需要非常繁琐的数据准备或访问权限则可以使用原型模式。 \color{red}{通过new产生一个对象需要非常繁琐的数据准备或访问权限则可以使用原型模式。} 通过new产生一个对象需要非常繁琐的数据准备或访问权限则可以使用原型模式。就是java中的克隆技术以某个对象为原型复杂出新的对象。显然新的对象具备原型对象的特点。优势 效率高(直接克隆避免了重新执行构造过程步骤)。克隆类似new,但是不同于new。new创建新的对象属性采用的是默认值。克隆出的对象的属性值完全和原型对象相同。并且克隆出的新对象改变不会影响原型对象。然后再改变克隆对象的值。 原型模式一般很少单独出现一般是和工厂方法模式一起出现通过 c l o n e 方法创建一个对象然后由工厂方法提供给调用者。 \color{red}{原型模式一般很少单独出现一般是和工厂方法模式一起出现通过clone方法创建一个对象然后由工厂方法提供给调用者。} 原型模式一般很少单独出现一般是和工厂方法模式一起出现通过clone方法创建一个对象然后由工厂方法提供给调用者。 二.原型模式实现 cloneable接口和clone方法利用序列化和反序列化实现深克隆。 三.浅克隆和深克隆 所谓浅克隆、深克隆指的是克隆对象和原型对象属性对象引用是否同一个是同一个就是浅克隆,否则就是深克隆。 四.代码展示 1.浅克隆代码 /*** 克隆羊 多利 对象*/ public class Sheep implements Cloneable{private String name;private Date birthday;Overrideprotected Object clone() throws CloneNotSupportedException {//ֱ直接调用Object对象的clone()方法Object objsuper.clone(); return obj;}public Sheep() {}public Sheep(String name, Date birthday) {this.name name;this.birthday birthday;}public String getName() {return name;}public Date getBirthday() {return birthday;}public void setName(String name) {this.name name;}public void setBirthday(Date birthday) {this.birthday birthday;} }浅克隆调用 /*** 原型模式------浅复制(浅克隆)*/ public class App {public static void main(String[] args) throws CloneNotSupportedException {Date datenew Date(123123123L);Sheep s1new Sheep(多利,date);Sheep s2(Sheep) s1.clone();System.out.println(s1\ts1.getName()----s1.getBirthday());//这里更改后 s2 克隆也相应更改date.setTime(321213543123L);System.out.println(s1\ts1.getName()----s1.getBirthday());//可以更改s2的属性s2.setName(多多利);System.out.println(s2\ts2.getName()----s2.getBirthday());} }浅克隆调用结果 com.reyco.prototype.Sheep7852e922 多利----Fri Jan 02 18:12:03 CST 1970 com.reyco.prototype.Sheep7852e922 多利----Fri Mar 07 01:59:03 CST 1980 com.reyco.prototype.Sheep55f96302 多多利----Fri Mar 07 01:59:03 CST 1980浅克隆调用结果原型对象的引用属性改变后克隆对象也会跟着改变。 2. 深克隆代码 /*** 原型模式------深复制(深克隆)*/ public class Sheep2 implements Cloneable{private String name;private Date birthday; Overrideprotected Object clone() throws CloneNotSupportedException {Object objsuper.clone(); //直接调用Object对象的clone()方法 //添加以下代码实现深复制Sheep2 s(Sheep2) obj; s.birthday(Date) this.birthday.clone(); return obj;}public Sheep2() {}public Sheep2(String name, Date birthday) {this.name name;this.birthday birthday;}public String getName() {return name;}public Date getBirthday() {return birthday;}public void setName(String name) {this.name name;}public void setBirthday(Date birthday) {this.birthday birthday;} }深克隆调用 /*** 原型模式------深复制(深克隆)* author Administrator*/ public class App2 {public static void main(String[] args) throws CloneNotSupportedException {Date datenew Date(123123123L);Sheep2 snew Sheep2(多利,date);Sheep2 s2(Sheep2) s.clone();System.out.println(s.getName()----s.getBirthday());//这里更改后 s2克隆不会更改date.setTime(321213543123L);System.out.println(s.getName()----s.getBirthday());//可以更改s2的属性s2.setName(多多利);System.out.println(s2.getName()----s2.getBirthday());} }深克隆调用结果 多利----Fri Jan 02 18:12:03 CST 1970 多利----Fri Mar 07 01:59:03 CST 1980 多多利----Fri Jan 02 18:12:03 CST 1970深克隆调用结果原型对象的引用属性改变后克隆对象不会跟着改变。 五.序列化和反序列化实现深克隆 代码 /*** 序列化和反序列化实现深克隆必须实现Serializable接口*/ public class Sheep implements Serializable{private String name;private Date birthday;public Sheep() {}public Sheep(String name, Date birthday) {this.name name;this.birthday birthday;}public String getName() {return name;}public Date getBirthday() {return birthday;}public void setName(String name) {this.name name;}public void setBirthday(Date birthday) {this.birthday birthday;} }public static void main(String[] args) throws Exception {Date datenew Date(123123123L);Sheep snew Sheep(多利,date);System.out.println(s.getName()----s.getBirthday());//使用序列化和反序列化实现深复制ByteArrayOutputStream bosnew ByteArrayOutputStream();ObjectOutputStream oosnew ObjectOutputStream(bos);oos.writeObject(s);byte[] bytes bos.toByteArray(); ByteArrayInputStream bisnew ByteArrayInputStream(bytes);ObjectInputStream oisnew ObjectInputStream(bis);Sheep s2(Sheep) ois.readObject();//这里更改后 s2克隆不会更改date.setTime(321213543123L);System.out.println(s.getName()----s.getBirthday());//可以更改s2的属性s2.setName(多多利);System.out.println(s2.getName()----s2.getBirthday()); }更多设计模式学习 设计模式(1)介绍           设计模式(2)单例模式           设计模式(3)工厂模式           设计模式(4)建造者模式           设计模式(6)桥接模式           设计模式(7)装饰器模式           设计模式持续更新中…
http://www.pierceye.com/news/314443/

相关文章:

  • com域名和网站小型企业网站排名前十
  • 网站内容 优化泉州网站开发公司
  • 假发外贸网站模板做图库网站需要多少钱
  • 网站建设公司 知道万维科技wordpress支持移动
  • 经典网站建设邢台网站建设策划
  • 系统数据库与建设网站网站提交入口大全
  • 网站做数据分析的意义西安网站建设kxccc
  • 免费建个人网站alexa排名搜索
  • 做的网站第二年续费多钱店铺装修模板
  • 这么自己建设网站中卫网站设计厂家
  • 公司网站制作哪家公司好广州建设执业资格注册中心网站
  • 北京所有做招聘类网站建站公司Apache Wordpress伪静态处理
  • 大兴做网站公司制作网页可以用什么软件
  • 该怎么给做网站的提页面需求网上购物平台怎么建立
  • 用pw后缀的网站阳江网络问政平台首页
  • 建站网站建设哪个好网页设计个人总结
  • 网站开发时间进度表宁波网站建设使用技巧分享
  • wordpress官网案例移动端优化
  • 广告投放网宁波seo网络推广报价
  • 网站模板 哪个好烟台高端网站建设公司
  • 福建网站开发手机软件app下载
  • 网站开发的功能需求怎么写网页版式设计分析
  • 荔浦网站开发乐陵新闻最新消息今天
  • 盘锦网站建设服务如何上传网站到空间
  • 怎样建设自己网站常德seo招聘
  • 用别人家网站做跳转做商品抬价是什么兼职网站
  • 合肥市建设信息中心网站怎么做网站的签约编辑
  • 6入空间网站免费观看网站标题怎么修改
  • iis服务器的默认网站wordpress多级分销插件
  • jquery 网站后台模板 仿2021好心人给个开车的网站