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

שש מחלקות (Sport, MRace, RGymnastic, Ball, TTennis, BBall) ושני ממשקים (IHall, IGroup). MRace/RGymnastic/Ball יורשות מ-Sport; RGymnastic ו-Ball מממשות IHall; TTennis ו-BBall יורשות מ-Ball; BBall גם מממשת IGroup ישירות.

תרשים ההיררכיה (מ-400dpi crop, עמ' 8): MRace יורשת מ-Sport (קו רציף בלבד). RGymnastic יורשת מ-Sport (קו רציף) ומממשת את IHall (קו מקווקו) — שני קווים נפרדים היוצאים מ-RGymnastic. Ball יורשת מ-Sport (קו רציף) ומממשת את IHall (קו מקווקו) — שני קווים נפרדים היוצאים מ-Ball. TTennis יורשת מ-Ball (קו רציף בלבד). BBall יורשת מ-Ball (קו רציף) ומממשת את IGroup (קו מקווקו ארוך, ישירות מ-BBall אל IGroup, לא דרך Ball).

Sport <---(ירושה)--- MRace
Sport <---(ירושה)--- RGymnastic ---(ממשק, מקווקו)---> IHall
Sport <---(ירושה)--- Ball      ---(ממשק, מקווקו)---> IHall
Ball  <---(ירושה)--- TTennis
Ball  <---(ירושה)--- BBall     ---(ממשק, מקווקו)---> IGroup
סעיף א

כתבו עבור כל מחלקה את כותרת המחלקה.

סעיף ב

עבור כל אחת מהפקודות הבאות קבעו אם היא נכונה או אינה נכונה, נמקו את קביעתכם:

  1. Sport s1 = new BBall();
  2. Sport s2 = new MRace();
  3. TTennis t1 = new Ball();
  4. BBall b1 = new IGroup();
  5. IHall i1 = new Ball();
  6. IHall i2 = new TTennis();
סעיף ג

כתבו פעולה המקבלת מערך עצמים מסוג Sport. הפעולה תחזיר מספר עצמים המייצגים ענף ספורט קבוצתי שמתקיים באולם. שימו לב: יש לכתוב את הפעולה כך שהיא תעבוד נכון גם כאשר יתווספו לפרויקט מחלקות נוספות, כמו VBall (כדורעף), HBall (כדוריד) וכד'.

public static int count(Sport[] s)

סעיף ד

רוצים להוסיף לפרויקט מחלקה חדשה המתארת כדורגל. האם אפשר להוסיף את המחלקה FBall תוך שמירה על היררכיה קיימת, או שיש לשנות את ההיררכיה? ציירו תרשים של היררכיית המחלקות החדשה (כולל את המחלקה FBall).

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

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

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

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