נתונות המחלקות First, Second, Third, Driver.
1public class First {
2 public static int count = 0;
3 private String str;
4 public First (String str) {
5 count++;
6 this.str = str;
7 }
8 public First (First g) {
9 count++;
10 this.str = "Copy" + g.str;
11 }
12 public void setStr (String str) {
13 this.str = str;
14 }
15 public void print () {
16 System.out.println ("First" + this.str);
17 }
18}
19
20public class Second extends First {
21 private First f;
22 public Second (First fx, First fy) {
23 super (fx);
24 this.f = fy;
25 }
26 public void setStr (String str) {
27 super.setStr (str);
28 this.f = new First (str);
29 }
30 public void print () {
31 System.out.println ("Second");
32 super.print ();
33 this.f.print ();
34 }
35}
36
37public class Third {
38 private int curr;
39 private First[] arr;
40 public Third (int count) {
41 curr = 0;
42 arr = new First [count];
43 }
44 public void print () {
45 for (int i = 0; i < curr; i++)
46 arr [i].print ();
47 }
48 public void add (First s) {
49 if (curr < arr.length) {
50 arr [curr] = s;
51 curr++;
52 }
53 }
54}
55
56public class Driver {
57 public static void main (String[] args) {
58 First f1 = new First ("One");
59 First f2 = new First ("Two");
60 First f3 = new First (f2);
61 Second s1 = new Second (f1, f3);
62 Third t = new Third (First.count);
63 t.add (f1);
64 t.add (f2);
65 t.add (s1);
66 System.out.println (First.count);
67 t.print ();
68 System.out.println (" ----------");
69 f1.setStr ("Five");
70 System.out.println (First.count);
71 t.print ();
72 }
73}תארו במילים את קשרי ההיררכיה בין המחלקות First, Second, Third: לכל מחלקה ציינו ממי היא יורשת (אם בכלל) ואילו מחלקות היא מכילה (תכונה מטיפוס מחלקה אחרת).
עקוב אחר ביצוע הפעולה main של המחלקה Driver: (1) הצג את התוכן של כל העצמים שנוצרו. (2) רשום את הפלט שהתקבל.
נתונות המחלקות First, Second, Third, Driver.
1public class First {
2 public static int count = 0;
3 private String str;
4 public First (String str) {
5 count++;
6 this.str = str;
7 }
8 public First (First g) {
9 count++;
10 this.str = "Copy" + g.str;
11 }
12 public void setStr (String str) {
13 this.str = str;
14 }
15 public void print () {
16 System.out.println ("First" + this.str);
17 }
18}
19
20public class Second extends First {
21 private First f;
22 public Second (First fx, First fy) {
23 super (fx);
24 this.f = fy;
25 }
26 public void setStr (String str) {
27 super.setStr (str);
28 this.f = new First (str);
29 }
30 public void print () {
31 System.out.println ("Second");
32 super.print ();
33 this.f.print ();
34 }
35}
36
37public class Third {
38 private int curr;
39 private First[] arr;
40 public Third (int count) {
41 curr = 0;
42 arr = new First [count];
43 }
44 public void print () {
45 for (int i = 0; i < curr; i++)
46 arr [i].print ();
47 }
48 public void add (First s) {
49 if (curr < arr.length) {
50 arr [curr] = s;
51 curr++;
52 }
53 }
54}
55
56public class Driver {
57 public static void main (String[] args) {
58 First f1 = new First ("One");
59 First f2 = new First ("Two");
60 First f3 = new First (f2);
61 Second s1 = new Second (f1, f3);
62 Third t = new Third (First.count);
63 t.add (f1);
64 t.add (f2);
65 t.add (s1);
66 System.out.println (First.count);
67 t.print ();
68 System.out.println (" ----------");
69 f1.setStr ("Five");
70 System.out.println (First.count);
71 t.print ();
72 }
73}תארו במילים את קשרי ההיררכיה בין המחלקות First, Second, Third: לכל מחלקה ציינו ממי היא יורשת (אם בכלל) ואילו מחלקות היא מכילה (תכונה מטיפוס מחלקה אחרת).
עקוב אחר ביצוע הפעולה main של המחלקה Driver: (1) הצג את התוכן של כל העצמים שנוצרו. (2) רשום את הפלט שהתקבל.