בי מאסטר (Bmaster)מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
תפריט

חומרי לימוד

מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
חזרה למאגר2019 קיץ מועד א

ירושה והכלה

שאלה קודמתשאלה הבאה
שאלה 14מבני נתונים2019 קיץ מועד א

ירושה והכלה

נתונות המחלקות 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}

משימות

אמשימה אtext

תארו במילים את קשרי ההיררכיה בין המחלקות First, Second, Third: לכל מחלקה ציינו ממי היא יורשת (אם בכלל) ואילו מחלקות היא מכילה (תכונה מטיפוס מחלקה אחרת).

במשימה בtext

עקוב אחר ביצוע הפעולה main של המחלקה Driver: (1) הצג את התוכן של כל העצמים שנוצרו. (2) רשום את הפלט שהתקבל.

שאלה 14מבני נתונים2019 קיץ מועד א

ירושה והכלה

נתונות המחלקות 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}

משימות

אמשימה אtext

תארו במילים את קשרי ההיררכיה בין המחלקות First, Second, Third: לכל מחלקה ציינו ממי היא יורשת (אם בכלל) ואילו מחלקות היא מכילה (תכונה מטיפוס מחלקה אחרת).

במשימה בtext

עקוב אחר ביצוע הפעולה main של המחלקה Driver: (1) הצג את התוכן של כל העצמים שנוצרו. (2) רשום את הפלט שהתקבל.