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

חומרי לימוד

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

ירושה ודריסת שיטות ב-AA ו-BB

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

ירושה ודריסת שיטות ב-AA ו-BB

לפניך המחלקות AA ו-BB.

1public class AA {
2    private String st;
3    public AA() { this.st = "excellent"; }
4    public AA(String st) { this.st = st; }
5    public String getSt() { return this.st; }
6    public void setSt(String st) { this.st = st; }
7    public String toString() { return "st = " + this.st; }
8}
9
10public class BB extends AA {
11    private int num;
12    public BB() { super(); this.num = 1; }
13    public BB(int num, String st) { super(st); this.num = Math.abs(num); }
14    public int getNum() { return this.num; }
15    public void setNum(int num) { this.num = num; }
16    public String toString() { return super.toString() + " num = " + this.num; }
17}

משימות

אמשימה אcode

הגדר במחלקה AA פעולה בוליאנית בשם isLike(Object obj) המקבלת עצם obj מטיפוס Object. אם העצם obj הינו מטיפוס AA וגם תוכן המחרוזת st של obj זהה לתוכן המחרוזת st של העצם הנוכחי — הפעולה תחזיר true, אחרת — תחזיר false.

במשימה בcode

הגדר במחלקה BB פעולה הדורסת את הפעולה שהגדרת בסעיף א. אם העצם obj הינו מטיפוס BB וגם ערך התכונה num שלו זהה לערך התכונה num של העצם הנוכחי — הפעולה תחזיר true, אחרת — תחזיר false.

גמשימה גtext

לפניך קטע מפעולה ראשית:

java
1AA  a = new AA("excellent");
2BB  b = new BB();
3a = b;
4if (a.isLike(b))  System.out.println(a);

האם קטע התכנית תקין? אם כן — מה יהיה פלט הקטע? רשום איזו גרסה של הפעולה isLike תופעל — זו של AA או זו של BB. אם לא — הסבר מהי השגיאה ומתי היא תתגלה: בזמן קומפילציה או בזמן ריצה.

דמשימה דtext

לפניך קטע מפעולה ראשית:

java
1AA  aa = new AA();
2BB  bb = new BB(2 , "excellent");
3bb = aa;
4if (bb.isLike(aa))  System.out.println(bb);

האם קטע התכנית תקין? אם כן — מה יהיה פלט הקטע? רשום איזו גרסה של הפעולה isLike תופעל — זו של AA או זו של BB. אם לא — הסבר מהי השגיאה ומתי היא תתגלה: בזמן קומפילציה או בזמן ריצה.

המשימה הcode

כתוב פעולה חיצונית בשם longString המקבלת מערך של עצמים מטיפוס Object. הפעולה מחזירה מחרוזת המורכבת משרשור התכונה st של עצמים מטיפוס AA במערך, באופן הזה:

  • אם לעצם יש רק התכונה st, תשורשר המחרוזת שבתכונה st פעם אחת.
  • אם לעצם יש גם התכונה num, המחרוזת שבתכונה st תשורשר num פעמים.
  • אם אין במערך אף עצם מטיפוס AA, תוחזר מחרוזת ריקה.
שאלה 14מבני נתונים2016 קיץ מועד ב

ירושה ודריסת שיטות ב-AA ו-BB

לפניך המחלקות AA ו-BB.

1public class AA {
2    private String st;
3    public AA() { this.st = "excellent"; }
4    public AA(String st) { this.st = st; }
5    public String getSt() { return this.st; }
6    public void setSt(String st) { this.st = st; }
7    public String toString() { return "st = " + this.st; }
8}
9
10public class BB extends AA {
11    private int num;
12    public BB() { super(); this.num = 1; }
13    public BB(int num, String st) { super(st); this.num = Math.abs(num); }
14    public int getNum() { return this.num; }
15    public void setNum(int num) { this.num = num; }
16    public String toString() { return super.toString() + " num = " + this.num; }
17}

משימות

אמשימה אcode

הגדר במחלקה AA פעולה בוליאנית בשם isLike(Object obj) המקבלת עצם obj מטיפוס Object. אם העצם obj הינו מטיפוס AA וגם תוכן המחרוזת st של obj זהה לתוכן המחרוזת st של העצם הנוכחי — הפעולה תחזיר true, אחרת — תחזיר false.

במשימה בcode

הגדר במחלקה BB פעולה הדורסת את הפעולה שהגדרת בסעיף א. אם העצם obj הינו מטיפוס BB וגם ערך התכונה num שלו זהה לערך התכונה num של העצם הנוכחי — הפעולה תחזיר true, אחרת — תחזיר false.

גמשימה גtext

לפניך קטע מפעולה ראשית:

java
1AA  a = new AA("excellent");
2BB  b = new BB();
3a = b;
4if (a.isLike(b))  System.out.println(a);

האם קטע התכנית תקין? אם כן — מה יהיה פלט הקטע? רשום איזו גרסה של הפעולה isLike תופעל — זו של AA או זו של BB. אם לא — הסבר מהי השגיאה ומתי היא תתגלה: בזמן קומפילציה או בזמן ריצה.

דמשימה דtext

לפניך קטע מפעולה ראשית:

java
1AA  aa = new AA();
2BB  bb = new BB(2 , "excellent");
3bb = aa;
4if (bb.isLike(aa))  System.out.println(bb);

האם קטע התכנית תקין? אם כן — מה יהיה פלט הקטע? רשום איזו גרסה של הפעולה isLike תופעל — זו של AA או זו של BB. אם לא — הסבר מהי השגיאה ומתי היא תתגלה: בזמן קומפילציה או בזמן ריצה.

המשימה הcode

כתוב פעולה חיצונית בשם longString המקבלת מערך של עצמים מטיפוס Object. הפעולה מחזירה מחרוזת המורכבת משרשור התכונה st של עצמים מטיפוס AA במערך, באופן הזה:

  • אם לעצם יש רק התכונה st, תשורשר המחרוזת שבתכונה st פעם אחת.
  • אם לעצם יש גם התכונה num, המחרוזת שבתכונה st תשורשר num פעמים.
  • אם אין במערך אף עצם מטיפוס AA, תוחזר מחרוזת ריקה.