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

לפניכם כותרות המחלקות BB, CC והתכונות שלהן, ולפניכם המחלקה Tester הכוללת פעולה ראשית:

public class BB {
  private int a;
  protected int b;
  ****
}
public class CC extends BB {
  private int c;
  ****
}

public class Tester {
  public static void main(String[] args) {
    BB [] b = new BB[8];
    b[0] = new BB();
    b[1] = new BB(16);
    b[2] = new BB(b[0]);
    b[3] = new BB(b[1]);
    b[4] = new CC(9);
    b[5] = new CC(5);
    b[6] = new CC(b[0]);
    b[7] = new CC(b[1]);
  }
}

הערה: שימו לב – לשתי המחלקות אין פעולות get ו-set.

לפניכם תרשים עצמים שנוצרו בעקבות הרצת קטע הקוד:

idx0 BB{a=10,b=1} idx1 BB{a=10,b=16} idx2 BB{a=10,b=1} idx3 BB{a=10,b=16} idx4 CC{a=10,b=9,c=7} idx5 CC{a=10,b=5,c=7} idx6 CC{a=10,b=1,c=19} idx7 CC{a=10,b=16,c=19}
סעיף א

לפניכם תרשים עצמים שנוצרו בעקבות הרצת קטע הקוד. מצב האובייקטים במערך b[0..7] לאחר ההרצה מפורט בטבלה שלהלן:

אינדקסמחלקהabc
b[0]BB101
b[1]BB1016
b[2]BB101
b[3]BB1016
b[4]CC1097
b[5]CC1057
b[6]CC10119
b[7]CC101619

כתבו במחלקות BB ו-CC את הפעולות הבונות הנדרשות כדי לקבל את העצמים שבטבלה. ציינו בעבור כל אחד מן העצמים שבטבלה את הפעולה הבונה על פיה הוא נוצר. הערה: אין להוסיף פעולות שאינן בונות במחלקות BB ו-CC. פתרון הכולל פעולות שאינן בונות לא יזוכה בנקודות.

סעיף ב

נתון קטע קוד תקין והפלט שהתקבל בעקבות הרצתו. כמו כן, נתון קטע קוד עבורו התקבלה שגיאת הידור (קומפילציה). ממשו את הפעולות goo ו-foo (Java) / Goo ו-Foo (C#) במחלקות המתאימות (BB ו-CC) על פי עקרונות תכנות מונחה עצמים, כך שיתקבל הפלט שלפניכם (יש לממש במחלקות רק את הפעולות הנחוצות כדי שהקוד ירוץ).

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

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

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

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