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

מדרג getPrice שכל תת-מחלקה מוסיפה עליו (א'), ואז שני שאילתות על אוסף לקוחות שדורשות הבחנה שונה בין 'הוא-סוג-של' (ב', עם רקורסיה לתוך Triple) לבין 'הטיפוס המדויק' (ג').

public class Cable
{
    private double subscriptionPayment;  // מחיר קבוע למנוי
    public double getPrice()
    {
        return subscriptionPayment;
    }
}
// חבילה בסיסית
public class BasicPackage extends Cable
{
    private double price; // מחיר חבילה בסיסית
}
// חבילה מורחבת המכילה ערוצים נוספים
public class ExtendedPackage extends BasicPackage
{
    private double price;  // מחיר קבוע עבור כל ערוץ נוסף
    private int numOfChannels;
    private String[] namesOfChannels; // מערך שמות ערוצים
}
// מחלקה עבור טלפון
public class Phone extends Cable
{
    private double price;  // מחיר שיחה
    private int numberOfCalls; // מספר שיחות
}
// חבילה משולבת
public class Triple extends Cable
{
    private Cable package;  // חבילה בסיסית או מורחבת
    private Phone phone;    // טלפון
    private double priceOfInternet;  // מחיר השימוש באינטרנט
}
// מחלקה עבור לקוח
public class Client
{
    private String nameClient;
    private Cable cable;
}
// לכל התכונות בכל המחלקות קיימות פעולות get/set.
סעיף א

ממשו את פעולת getPrice בכל אחת מארבע המחלקות האחרות: BasicPackage, ExtendedPackage, Phone, Triple. ממשו את הפעולה getPrice במחלקה Client.

public double getPrice()

סעיף ב

כתבו במחלקה Company פעולה המדפיסה את שמות הלקוחות שיש להם ערוץ "ספורט".

public void printSportClients()

סעיף ג

כתבו במחלקה Company פעולה המחזירה את כמות הלקוחות שיש להם חבילה בסיסית בלבד.

public int countBasicOnly()

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

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

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

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