对象拷贝-深拷贝
1 package com.yj.fenghao.clone;
2 //深拷貝的簡單測試
3 import java.util.Date;
4
5 public class Employee implements Cloneable{
6
7 private String name;
8 private String age;
9 private String salary;
10 private String career;
11 private Date date;
12 public String getName() {
13 return name;
14 }
15 public void setName(String name) {
16 this.name = name;
17 }
18 public String getAge() {
19 return age;
20 }
21 public void setAge(String age) {
22 this.age = age;
23 }
24 public String getSalary() {
25 return salary;
26 }
27 public void setSalary(String salary) {
28 this.salary = salary;
29 }
30 public String getCareer() {
31 return career;
32 }
33 public void setCareer(String career) {
34 this.career = career;
35 }
36 public Date getDate() {
37 return date;
38 }
39 public void setDate(Date date) {
40 this.date = date;
41 }
42 public Employee(String name, String age, String salary, String career, Date date) {
43 super();
44 this.name = name;
45 this.age = age;
46 this.salary = salary;
47 this.career = career;
48 this.date = date;
49 }
50 public Employee() {
51 super();
52 }
53 // /**
54 // * 如果對象中含有其他的對象,調(diào)用超類的克隆方法是淺克隆
55 // */
56 // @Override
57 // protected Object clone() throws CloneNotSupportedException {
58 // return super.clone();
59 // }
60
61 /**
62 * 如果對象中含有其他的對象,其他的對象也需要克隆,即使深拷貝
63 */
64 @Override
65 protected Employee clone() throws CloneNotSupportedException {
66 Employee emply = (Employee)super.clone();
67 emply.date= (Date)date.clone();
68 return emply;
69 }
70 @Override
71 public String toString() {
72 return "{\"name\":"+name+",\"age\":"+age+",\"salary\":"+salary+",\"career\":"+career+",\"date\":+"+date+"}";
73 }
74
75
76 } 1 package com.yj.fenghao.clone;
2
3 import java.text.ParseException;
4 import java.text.SimpleDateFormat;
5 import java.util.Date;
6
7
8
9 public class CloneableTest {
10
11
12 public static void main(String[] args) throws CloneNotSupportedException, ParseException {
13 SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
14 Employee em=new Employee();
15 em.setDate(new Date());
16 em.setName("fenghao");
17 em.setAge("25");
18 em.setSalary("1000");
19 em.setCareer("111");
20 Employee clone = em.clone();
21 clone.setDate(format.parse("2015-01-01 12:00:00"));
22 clone.setName("xuxiaoxiao");
23 System.out.println(em.toString());
24 System.out.println(clone.toString());
25 }
26
27 }
運行結(jié)果:
{"name":fenghao,"age":25,"salary":1000,"career":111,"date":+Fri Apr 07 08:29:29 CST 2017} {"name":xuxiaoxiao,"age":25,"salary":1000,"career":111,"date":+Thu Jan 01 12:00:00 CST 2015}?
轉(zhuǎn)載于:https://www.cnblogs.com/nihaofenghao/p/6676399.html
總結(jié)
- 上一篇: alert和console的区别
- 下一篇: day36-hibernate检索和优化