Java/Java Training
[Java] 19-1
군우
2018. 3. 9. 13:03
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | package shallowDeepCopy19; class Business implements Cloneable { private String company; private String work; public Business(String company, String work) { this.company = company; this.work = work; } public void showbusinessinfo() { System.out.println(company + work); } public void changeWork(String work) { this.work = work; } public Object clone() throws CloneNotSupportedException { return super.clone(); } } class personalinfo implements Cloneable { private String name; private int age; private Business bness; public personalinfo(String name, int age, String company, String work) { this.name = name; this.age = age; bness = new Business(company, work); } public void showPersonalinfo() { System.out.println(name + age); bness.showbusinessinfo(); } public void changework(String work) { bness.changeWork(work); } public Object clone() throws CloneNotSupportedException { personalinfo copy = (personalinfo) super.clone(); copy.bness = (Business) bness.clone(); return copy; } } class DeepCopyImpl { public static void main(String[] args) { try { personalinfo pinfo = new personalinfo("james", 22, "sd", "dfs"); personalinfo pcopy = (personalinfo) pinfo.clone(); pcopy.changework("dfdfdf"); pcopy.showPersonalinfo(); pinfo.showPersonalinfo(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } } } | cs |