אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — מבני נתונים (שאלון 899271)מבחן 2024 · קיץ מועד א · שאלה 13כל שאלות המבחן ←
תכנות מונחה עצמיםירושה

נתונות כותרות המחלקות 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. פתרון המוסיף פעולות שאינן בונות לא יזוכה בנקודות.

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי