设计模式-创建型-原型模式-prototype

工作经验类

public class WorkExperience implements Cloneable {private String workDate;private String company;public void setWorkDate(String workDate) {this.workDate = workDate;}public void setCompany(String company) {this.company = company;}@Overridepublic Object clone() throws CloneNotSupportedException {WorkExperience obj = new WorkExperience();obj.workDate = this.workDate;obj.company = this.company;return obj;}@Overridepublic String toString() {return "WorkExperience{" +"workDate='" + workDate + '\'' +", company='" + company + '\'' +'}';}
}

简历类

public class Resume implements Cloneable {private String name;private String sex;private String age;private WorkExperience work;public Resume(String name) {this.name = name;work = new WorkExperience();}private Resume(WorkExperience work) throws CloneNotSupportedException {this.work = (WorkExperience) work.clone();}public void setPersonInfo(String sex, String age) {this.sex = sex;this.age = age;}public void setWorkExperience(String workDate, String company) {work.setWorkDate(workDate);work.setCompany(company);}@Overridepublic Object clone() throws CloneNotSupportedException {Resume obj = new Resume(this.work);obj.name = name;obj.sex = sex;obj.age = age;return obj;}@Overridepublic String toString() {return "Resume{" +"name='" + name + '\'' +", sex='" + sex + '\'' +", age='" + age + '\'' +", work=" + work +'}';}
}

演示类

public class WorkResume {public static void main(String[] args) throws CloneNotSupportedException {Resume a = new Resume("张三");a.setPersonInfo("男","29");a.setWorkExperience("1998~2000","XXX公司");System.out.println(a);Resume b= (Resume) a.clone();b.setWorkExperience("2001~2006","YYY公司");System.out.println(b);}
}

演示结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/10431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nuxt2路由,以及重构以前项目,路由使用

Nuxt.js根据pages目录结构自动生成vue-router模块的路由配置。 配置生成的路由可在.nuxt文件下的router.js文件中查看到,如: export const routerOptions {mode: history,base: /,linkActiveClass: nuxt-link-active,linkExactActiveClass: nuxt-link…

GAME101-Lecture06学习

前言 上节课主要讲的是三角形的光栅化。重要的思想是要利用像素的中心对三角形可见性的函数进行采样。 这节课主要就是反走样。 课程链接:Lecture 06 Rasterization 2 (Antialiasing and Z-Buffering)_哔哩哔哩_bilibili 反走样引入 ​ 通过采样,得到…

算法设计与分析 例题解答 解空间与搜索

1.请画出用回溯法解n3的0-1背包问题的解空间树和当三个物品的重量为{20, 15, 10},价值为{20, 30, 25},背包容量为25时搜索空间树。 答: 解空间树: 搜索空间树: 2. 考虑用分支限界解0-1背包问题 给定n种物品和一背包…

服务丢在tomcat中启动war包,需要在tomcat中配置Java环境吗?

一般来说,部署在 Tomcat 上的 WAR 包启动时不需要在 Tomcat 中单独配置 Java 环境,因为 Tomcat 启动本身就需要依赖 Java 环境。以下是确保 Tomcat 正常运行与部署 WAR 包的基本步骤: 安装 Java 环境: 首先,确保你的系…

ts函数?

函数 介绍 函数是JavaScript应用程序的基础。 它帮助你实现抽象层,模拟类,信息隐藏和模块。 在TypeScript里,虽然已经支持类,命名空间和模块,但函数仍然是主要的定义 行为的地方。 TypeScript为JavaScript函数添加了额…

【Qt C++实现蓝牙互联】

在 Qt C++ 中实现蓝牙互联可以通过 Qt 的蓝牙模块来实现。下面是一个简单的示例,演示如何在 Qt C++ 中使用蓝牙模块进行蓝牙互联,实现搜索设备、连接设备等功能。 // main.cpp #include <QCoreApplication> #include <QBluetoothDeviceDiscoveryAgent> #include…

【八】centos7.6安装chrome和chromedriver并启动selenium

学习来源&#xff1a; 安装chrome和chrome driver -----https://blog.csdn.net/zdlcome/article/details/133813441 安装Python11 -----https://blog.csdn.net/weixin_43741408/article/details/130251102 chromedriver下载地址 -----https://googlechromelabs.github.io/chrom…

个人网站快速搭建手册:低成本,高效率,轻松发布

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;React篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来-快速构建个人站|博客|系统,低成本发布上线 目录 前言 博主主页搭建案例 虚拟主机|服务器|域名 使用免费二级…

如何挑选家用洗地机?需要注意什么?这四款洗地机性价比超高

洗地机结合了扫、拖、吸的功能&#xff0c;一台机器&#xff0c;一个推拉的动作便可以清理干净地面上的干湿垃圾&#xff0c;大大的节省了我们做家务的清洁时间&#xff0c;提升了生活质量。但是面对市面上众多的洗地机型号&#xff0c;我们要怎么去挑选呢&#xff0c;需要主要…

Rancher-Kubewarden-保姆级教学-含Demo测试

一、什么是Kubewarden&#xff1f; What is Kubewarden? | Kubewarden 1、就是容器集群的准入策略引擎。 1、使用的策略其实就是k8s原生的security context. 2、使用WebAssembly来编写策略。 1、WebAssembly&#xff0c;可以使用擅长的开发语言来编写策略。&#xff08;下面的…

TEINet: Towards an Efficient Architecture for Video Recognition 论文阅读

TEINet: Towards an Efficient Architecture for Video Recognition 论文阅读 Abstract1 Introduction2 Related Work3 Method3.1 Motion Enhanced Module3.2 Temporal Interaction Module3.3 TEINet 4 Experiments5 Conclusion阅读总结 文章信息; 原文链接&#xff1a;https:…

【ARM 嵌入式 C 字符串系列 23.9 -- strcmp 与 strncmp 在使用上的区别以及注意事项】

请阅读【嵌入式开发学习必备专栏】 文章目录 strcmp 与 strncmp 使用介绍strcmpstrncmp使用建议 strcmp 与 strncmp 使用介绍 strcmp 和 strncmp 都是 C 语言标准库中用于比较两个字符串的函数&#xff0c;它们定义在 <string.h> 头文件中。这两个函数在功能上相似&…

做题杂记666

[XYCTF2024] 铜匠 题目描述&#xff1a; from Crypto.Util.number import * from secrets import flagm bytes_to_long(flag) m1 getRandomRange(1, m) m2 getRandomRange(1, m) m3 m - m1 - m2def task1():e 149p getPrime(512)q getPrime(512)n p * qd inverse(e,…

Redis基础面试知识点(1)

相比于C字符串&#xff0c;SDS的优势&#xff1a; O(1)获取字符串的长度不会缓冲区溢出减少修改字符串时所需的内存重新分配的次数&#xff08;空间预分配、惰性空间释放&#xff09;二进制API安全&#xff08;通过len获取长度&#xff09;兼容部分C字符串函数 Redis hash策略…

跨境电商独立站建站和外贸建站有什么相同与不同的

跨境电商独立站建站和外贸建站在多个方面存在相同点和不同点。 相同点&#xff1a; 目的性&#xff1a;无论是跨境电商独立站还是外贸建站&#xff0c;主要目的是为了拓展海外市场&#xff0c;进行国际贸易活动。 自主性&#xff1a;两者都允许企业或个人拥有更大的控制权&a…

SSH(安全外壳协议)简介

一、引言 SSH&#xff08;Secure Shell&#xff09;是一种加密的网络传输协议&#xff0c;用于在不安全的网络中提供安全的远程登录和其他安全网络服务。SSH最初由芬兰程序员Tatu Ylnen开发&#xff0c;用于替代不安全的telnet、rlogin和rsh等远程登录协议。通过SSH&#xff0…

干货分享:AI知识库-从认识到搭建

随着知识库的出现&#xff0c;人工智能也逐渐加入进来&#xff0c;形成了“AI知识库”。也许将AI和知识库拆开&#xff0c;你能理解是什么意思&#xff0c;但是当两个词结合在一起时&#xff0c;你又真的能理解它是做什么的吗&#xff1f;这就是今天我们要来聊的话题&#xff0…

全网最详细IOS系统APP上架教程(二)

上一篇讲解了IOS系统APP上架注册苹果开发者账号需要的材料、邓白氏编码的注册等&#xff0c;本文将继续讲解后续流程。 详细步骤 三、申请苹果开发者账号 在苹果手机上安装Apple Developer 打开Apple Developer&#xff0c;用之前注册好的Apple ID登录&#xff0c;输入姓名身…

mysql 查询某一字段忽略大小写

在MySQL中&#xff0c;要进行UTF-8编码的字符串查询并忽略大小写&#xff0c;可以使用COLLATE子句指定一个utf8_general_ci&#xff08;case-insensitive&#xff09;或者utf8_unicode_ci&#xff08;更复杂的Unicode排序规则&#xff0c;也不区分大小写&#xff09;的校对规则…

J1019基于SpringBoot的护肤品推荐系统设计与实现(源码+包运行+技术指导)

项目描述 临近学期结束&#xff0c;开始毕业设计制作&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉的困难吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SpringBoot的护…