לפניך המחלקות 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}הגדר במחלקה AA פעולה בוליאנית בשם isLike(Object obj) המקבלת עצם obj מטיפוס Object. אם העצם obj הינו מטיפוס AA וגם תוכן המחרוזת st של obj זהה לתוכן המחרוזת st של העצם הנוכחי — הפעולה תחזיר true, אחרת — תחזיר false.
הגדר במחלקה BB פעולה הדורסת את הפעולה שהגדרת בסעיף א.
אם העצם obj הינו מטיפוס BB וגם ערך התכונה num שלו זהה לערך התכונה num של העצם הנוכחי — הפעולה תחזיר true, אחרת — תחזיר false.
לפניך קטע מפעולה ראשית:
java1AA a = new AA("excellent"); 2BB b = new BB(); 3a = b; 4if (a.isLike(b)) System.out.println(a);
האם קטע התכנית תקין?
אם כן — מה יהיה פלט הקטע? רשום איזו גרסה של הפעולה isLike תופעל — זו של AA או זו של BB.
אם לא — הסבר מהי השגיאה ומתי היא תתגלה: בזמן קומפילציה או בזמן ריצה.
לפניך קטע מפעולה ראשית:
java1AA aa = new AA(); 2BB bb = new BB(2 , "excellent"); 3bb = aa; 4if (bb.isLike(aa)) System.out.println(bb);
האם קטע התכנית תקין?
אם כן — מה יהיה פלט הקטע? רשום איזו גרסה של הפעולה isLike תופעל — זו של AA או זו של BB.
אם לא — הסבר מהי השגיאה ומתי היא תתגלה: בזמן קומפילציה או בזמן ריצה.
כתוב פעולה חיצונית בשם longString המקבלת מערך של עצמים מטיפוס Object.
הפעולה מחזירה מחרוזת המורכבת משרשור התכונה st של עצמים מטיפוס AA במערך, באופן הזה:
st, תשורשר המחרוזת שבתכונה st פעם אחת.num, המחרוזת שבתכונה st תשורשר num פעמים.AA, תוחזר מחרוזת ריקה.לפניך המחלקות 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}הגדר במחלקה AA פעולה בוליאנית בשם isLike(Object obj) המקבלת עצם obj מטיפוס Object. אם העצם obj הינו מטיפוס AA וגם תוכן המחרוזת st של obj זהה לתוכן המחרוזת st של העצם הנוכחי — הפעולה תחזיר true, אחרת — תחזיר false.
הגדר במחלקה BB פעולה הדורסת את הפעולה שהגדרת בסעיף א.
אם העצם obj הינו מטיפוס BB וגם ערך התכונה num שלו זהה לערך התכונה num של העצם הנוכחי — הפעולה תחזיר true, אחרת — תחזיר false.
לפניך קטע מפעולה ראשית:
java1AA a = new AA("excellent"); 2BB b = new BB(); 3a = b; 4if (a.isLike(b)) System.out.println(a);
האם קטע התכנית תקין?
אם כן — מה יהיה פלט הקטע? רשום איזו גרסה של הפעולה isLike תופעל — זו של AA או זו של BB.
אם לא — הסבר מהי השגיאה ומתי היא תתגלה: בזמן קומפילציה או בזמן ריצה.
לפניך קטע מפעולה ראשית:
java1AA aa = new AA(); 2BB bb = new BB(2 , "excellent"); 3bb = aa; 4if (bb.isLike(aa)) System.out.println(bb);
האם קטע התכנית תקין?
אם כן — מה יהיה פלט הקטע? רשום איזו גרסה של הפעולה isLike תופעל — זו של AA או זו של BB.
אם לא — הסבר מהי השגיאה ומתי היא תתגלה: בזמן קומפילציה או בזמן ריצה.
כתוב פעולה חיצונית בשם longString המקבלת מערך של עצמים מטיפוס Object.
הפעולה מחזירה מחרוזת המורכבת משרשור התכונה st של עצמים מטיפוס AA במערך, באופן הזה:
st, תשורשר המחרוזת שבתכונה st פעם אחת.num, המחרוזת שבתכונה st תשורשר num פעמים.AA, תוחזר מחרוזת ריקה.