נתונות כותרות המחלקות AA (תכונה private int x) ו-BB extends AA (תכונה נוספת private AA f), ולהן אין get/set. נתונה המחלקה Test שיוצרת עשרה עצמים (a1..a5, b1..b5) ותרשים של הערכים שהתקבלו בפועל. יש להשלים במחלקות AA/BB את כל הפעולות הבונות (יכולות להיות כמה בונים למחלקה) כך שהריצה תפיק בדיוק את התרשים - בלי להוסיף אף פעולה שאינה בונה.
נתונות כותרות המחלקות AA (תכונה private int x) ו-BB extends AA (תכונה נוספת private AA f), ולהן אין get/set. נתונה המחלקה Test שיוצרת עשרה עצמים (a1..a5, b1..b5) ותרשים של הערכים שהתקבלו בפועל. יש להשלים במחלקות AA/BB את כל הפעולות הבונות (יכולות להיות כמה בונים למחלקה) כך שהריצה תפיק בדיוק את התרשים - בלי להוסיף אף פעולה שאינה בונה.
public class AA
{
private int x;
***
}
public class BB extends AA
{
private AA f;
***
}
public class Test{
public static void main(String[] args) {
AA a1 = new AA ();
AA a2 = new AA (8);
AA a3 = new AA (3);
AA a4 = new AA (a1);
AA a5 = new AA (a2);
BB b1 = new BB ();
BB b2 = new BB (6, a4);
BB b3 = new BB (5, a2);
BB b4 = new BB (a4);
BB b5 = new BB (a2);
}
}
תרשים העצמים שנוצרו בעקבות הרצת הקוד:

a1: AA { x = 2 }
a2: AA { x = 8 }
a3: AA { x = 3 }
a4: AA { x = 2 }
a5: AA { x = 8 }
b1: BB { x = 1, f = null }
b2: BB { x = 6, f = a4 }
b3: BB { x = 5, f = a2 }
b4: BB { x = 0, f → AA { x = 2 } } (עצם AA חדש)
b5: BB { x = 0, f → AA { x = 8 } } (עצם AA חדש)
סעיף א
כתבו במחלקות AA ו-BB את הפעולות הבונות הנדרשות כדי לקבל את העצמים שבתרשים. ציינו בעבור כל אחד מן העצמים שנוצרו את הפעולה הבונה המתאימה לו. הערה: אין להוסיף פעולות שאינן בונות במחלקות AA ו-BB. פתרון המוסיף פעולות שאינן בונות לא יזוכה בנקודות.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.