מדרג getPrice שכל תת-מחלקה מוסיפה עליו (א'), ואז שני שאילתות על אוסף לקוחות שדורשות הבחנה שונה בין 'הוא-סוג-של' (ב', עם רקורסיה לתוך Triple) לבין 'הטיפוס המדויק' (ג').
מדרג 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()
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.