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

Flower מחלקת-על עם תכונה מוגנת height ותכונה פרטית price; Rose יורשת ממנה, מוסיפה color פרטית ופעולת validHeight. שלושה סעיפים: זיהוי היגדי ירושה נכונים/שגויים, בדיקת תקינות שורות קוד (קומפילציה/ריצה), וכתיבת פעולת מיון-סוגים.

public class Flower {
  protected int height;
  private int price;
  public Flower(int val) { this.height = val; this.price = 10; }
  public int GetHeight() { return this.height; }
  public int GetPrice() { return this.price; }
}
public class Rose : Flower {
  private string color;
  public Rose(int val, string col) : base(val) {
    this.color = col;
  }
  public bool ValidHeight() {
    return this.height > 10 && this.height < 30;
  }
}
סעיף א

לפניכם חמישה היגדים. קבעו לכל אחד מהם אם הוא נכון או אינו נכון, ונמקו את קביעתכם:

  1. המחלקה Flower יורשת את הפעולה validHeight()/ValidHeight() מהמחלקה Rose.
  2. המחלקה Rose יורשת את כל התכונות ואת כל הפעולות של המחלקה Flower.
  3. המחלקה Rose יכולה לגשת ישירות לתכונה height של המחלקה Flower.
  4. המחלקה Flower יכולה לגשת לתכונה color של המחלקה Rose.
  5. לעצמים מטיפוס Rose אין תכונה price.
סעיף ב

לפניכם קטע קוד מהתוכנית הראשית: Flower first = new Rose(20, "RED"); Flower second = new Flower(93); בעבור כל אחת מההוראות שלפניכם קבעו אם היא תקינה או אינה תקינה. אם היא אינה תקינה, נמקו את קביעתכם וכתבו אם זו שגיאת ריצה או שגיאת הידור (קומפילציה):

  1. boolean b = first.validHeight();
  2. boolean b = second.validHeight();
  3. boolean b = ((Rose)first).validHeight();
  4. boolean b = ((Rose)second).validHeight();
  5. boolean b = first.getPrice() == second.price;
סעיף ג

כתבו פעולה המקבלת מערך עצמים מטיפוס Object. הפעולה תדפיס כמה עצמים הם מטיפוס Rose, כמה עצמים מטיפוס Flower ואינם מטיפוס Rose, וכמה עצמים הם לא מטיפוס Flower.

public static void CountTypes(object[] arr)

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

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

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

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