אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2022 · קיץ מועד ב · שאלה 6כל שאלות המבחן ←
תכנות מונחה עצמיםתרשימי UML

שלושה ממשקים Inter1(g1), Inter2(g2), Inter3(g3), ושלוש מחלקות F, G, H (רק H מודפסת עם כותרות מלאות: g2,g3,g4; F ו-G מודפסות עם "…" בלבד). קטע ה-main מגלה את כל הקשרים.

Inter1 x = new F();
G y = new G();
Inter3 z = new H();
x = y;
y = new H();
y.G2();
z.G3();
((H)z).G4();
z = new F();

מבנה הירושה/מימוש הנגזר מהקוד (הוכח לוגית משורות ה-main, ואומת בקומפילציה בפועל): F ← Inter1,Inter3 (מימוש); G ← Inter1,Inter2 (מימוש); H extends G, וגם H ← Inter3 (מימוש נוסף, ישיר). ראו נימוק ב-notes של סעיף א'.

Inter1(g1)   Inter2(g2)   Inter3(g3)
   ▲            ▲            ▲
   |‑‑‑‑‑‑‑‑‑‑‑‑|            |
   F            G────────────┘(H ממשת ישירות)
                ▲
                | (ירושה)
                H (g2 [דריסה], g3, g4)
סעיף א

השלימו את תרשים ה-UML: הוסיפו כותרות הפעולות במחלקות F ו-G, ציירו קשרים בין המחלקות והממשקים.

סעיף ב

כתבו פעולה המקבלת מערך עצמים מסוג Object. הפעולה מדפיסה את מספר האיברים שעבורם אפשר להפעיל את הפעולה g1(), ואת מספר האיברים שעבורם אי אפשר להפעיל את הפעולה g3().

public static void CountG1G3(object[] arr)

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

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

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

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