/**
* 原型模式 Prototype
* 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象
*/ 需求:
public class Resume {
/**
* 要求:一个简历类,必须有姓名,可以设置性别和年龄,可以设置工作经历,最终需要三份简历
*/
String name;
int age;
String gender;
String timeArea;
String company; public Resume(String name) {
this.name = name;
} public void setPersonInfo(String gender, int age){
this.gender = gender;
this.age = age;
} public void setWorkExperience(String timeArea, String company){
this.timeArea = timeArea;
this.company = company;
} public void display(){
System.out.println(name + gender + age);
System.out.println("工作经历: " + timeArea +" " + company);
} public static void main1(String[] args){
Resume a = new Resume("大鸟");
a.setPersonInfo("男", 21);
a.setWorkExperience("上海", "xxx公司"); Resume b = new Resume("大鸟");
b.setPersonInfo("男", 21);
b.setWorkExperience("上海", "xxx公司"); Resume c = new Resume("大鸟");
c.setPersonInfo("男", 21);
c.setWorkExperience("上海", "xxx公司"); a.display();
b.display();
c.display(); } 改进:
  
public void copySome(String[] args){
Resume a = new Resume("大鸟");
a.setPersonInfo("男", 21);
a.setWorkExperience("上海", "xxx公司");
Resume b = a;
Resume c = a; a.display();
b.display();
c.display();
} 引出原型模式。

深拷贝与浅拷贝:

区别在于浅拷贝对于引用数据类型只是引用的传递,可能导致克隆体和本体共用一个引用变量,造成互相影响。深拷贝需要重写clone,进行引用对象的值传递。

												

最新文章

  1. c#中如何获取listbox中选中值的问题
  2. 【原创】-- uboot,kennel,fs,rootfs 编译制作
  3. Jquery 获取表单值如input,select等方法
  4. Tomcat配置一个ip绑定多个域名
  5. ONOS系统架构演进,实现高可用性解决方案
  6. Oracle数据库索引使用及索引失效总结
  7. Wix学习整理(7)——在开始菜单中为HelloWorld添加卸载快捷方式
  8. [ An Ac a Day ^_^ ] CodeForces 525B Pasha and String 技巧
  9. Redis数据类型之字符串String
  10. R语言︱构造新序列
  11. linux --> 计算机是如何启动的?
  12. Java核心技术第四章——2.final 和 static
  13. 数字(Number)类型(一)
  14. 性能瓶颈之Target
  15. TCP/IP理解
  16. JFrog Artifactory CE c&&c++ 包管理工具
  17. JS表单常见表达式(正则)
  18. Excel小技巧整理(持续更新)
  19. Qt Creator子目录项目-类似VS解决方案
  20. 【Linux】Ubuntu下录屏&&制作GIF

热门文章

  1. 0702-spring cloud config-git仓库配置、用户授权
  2. 菜单和按钮-EasyUI Menu 菜单、EasyUI Linkbutton 链接按钮、EasyUI Menubutton 菜单按钮、EasyUI Splitbutton 分割按钮
  3. jvm启动
  4. KS检验学习[转载]
  5. 20165324_mypwd
  6. Q_OBJECT宏的作用
  7. 1 - bootstrap基本模板
  8. ubuntu16.04(liunx) 离线安装 xgboost (anaconda3,anaconda2共存)
  9. 2018 Multi-University Training Contest 8 Solution
  10. 牛客国庆集训派对Day5 Solution