בחברה להשכרת כלי רכב "סעו לשלום" פותחה מערכת ממוחשבת שבה המחלקות: Contract — חוזה, Vehicle — כלי רכב, Car — מכונית, Truck — משאית, Motorcycle — אופנוע.
להלן פירוט תכונות המחלקות:
Contract (חוזה) — שלוש תכונות: name (שם לקוח, מחרוזת), days (מספר ימי השכרה, שלם), kilo (מספר הקילומטרים שנסע הלקוח, שלם).Vehicle (כלי רכב) — שתי תכונות: id (מזהה כלי רכב, מחרוזת), contract (חוזה, מטיפוס Contract).Car (מכונית) — שלוש תכונות: id (מחרוזת), contract (מטיפוס Contract), seats (מספר מקומות ישיבה, שלם).Truck (משאית) — שלוש תכונות: id (מחרוזת), contract (מטיפוס Contract), max (משקל מקסימלי להעמסה, שלם).Motorcycle (אופנוע) — שלוש תכונות: id (מחרוזת), contract (מטיפוס Contract), offRoad (בוליאני — אמת אם האופנוע הוא אופנוע שטח, אחרת שקר).התעריפים: התעריף הבסיסי שהחברה גובה על השכרת כלי רכב (Vehicle) הוא 60 שקלים ליום השכרה ו-2 שקלים לכל קילומטר של נסיעה.
Car) הוא לפי התעריף הבסיסי.Truck) הוא לפי התעריף הבסיסי, ונוסף על כך סכום חד-פעמי של 500 שקלים.Motorcycle) הוא מחצית מן התעריף הבסיסי.סרטטו תרשים הייררכייה המתאר את הקשר בין המחלקות של המערכת הממוחשבת. יש לסמן ירושה באמצעות החץ (———▶) והכלה באמצעות הסימן (———◆).
כתבו את כותרות המחלקות ואת התכונות שלהן. הניחו שהפעולות get ו-set (ב-C#: Get ו-Set) קיימות בכל התכונות של המחלקות, ואין צורך לממש אותן.
נתונה הפעולה הבונה של המחלקה Contract (אין צורך לממש אותה):
java1public Contract (String name, int days, int kilo)
(1) לפניכם כותרת הפעולה הבונה של המחלקה Vehicle. הפעולה מקבלת שם לקוח, מספר ימי השכרה, מספר קילומטרים שנסע הלקוח ומזהה כלי רכב. ממשו את הפעולה הבונה:
java1public Vehicle (String name, int days, int kilo, String id)
(2) לפניכם כותרת הפעולה הבונה של המחלקה Car. הפעולה מקבלת שם לקוח, מספר ימי השכרה, מספר קילומטרים שנסע הלקוח, מזהה כלי רכב ומספר מקומות ישיבה. ממשו את הפעולה הבונה:
java1public Car (String name, int days, int kilo, String id, int seats)
(ב-C#: string במקום String.)
הפעולה payment (ב-C#: Payment) מחזירה מספר ממשי השווה לסכום שהלקוח נדרש לשלם בעבור כל אחד מסוגי כלי הרכב שהחברה משכירה (בהתאם לעצם שזימן את הפעולה, ולפי התעריפים המפורטים בתיאור המערכת).
(1) כתבו את הפעולה payment במחלקה Vehicle (כאמור לעיל, הסכום לתשלום הוא לפי התעריף הבסיסי).
(2) הוסיפו את הפעולה payment למחלקה/ות האחרות כדי לבצע את הנדרש (רק במחלקות שיש בהן צורך), לפי עקרונות תכנות מונחה עצמים.
הערה: אין להשתמש בפעולה instanceOf בסעיף זה ובפעולות של המחלקה Object, ואין לשנות את תכונות המחלקות.
בחברה להשכרת כלי רכב "סעו לשלום" פותחה מערכת ממוחשבת שבה המחלקות: Contract — חוזה, Vehicle — כלי רכב, Car — מכונית, Truck — משאית, Motorcycle — אופנוע.
להלן פירוט תכונות המחלקות:
Contract (חוזה) — שלוש תכונות: name (שם לקוח, מחרוזת), days (מספר ימי השכרה, שלם), kilo (מספר הקילומטרים שנסע הלקוח, שלם).Vehicle (כלי רכב) — שתי תכונות: id (מזהה כלי רכב, מחרוזת), contract (חוזה, מטיפוס Contract).Car (מכונית) — שלוש תכונות: id (מחרוזת), contract (מטיפוס Contract), seats (מספר מקומות ישיבה, שלם).Truck (משאית) — שלוש תכונות: id (מחרוזת), contract (מטיפוס Contract), max (משקל מקסימלי להעמסה, שלם).Motorcycle (אופנוע) — שלוש תכונות: id (מחרוזת), contract (מטיפוס Contract), offRoad (בוליאני — אמת אם האופנוע הוא אופנוע שטח, אחרת שקר).התעריפים: התעריף הבסיסי שהחברה גובה על השכרת כלי רכב (Vehicle) הוא 60 שקלים ליום השכרה ו-2 שקלים לכל קילומטר של נסיעה.
Car) הוא לפי התעריף הבסיסי.Truck) הוא לפי התעריף הבסיסי, ונוסף על כך סכום חד-פעמי של 500 שקלים.Motorcycle) הוא מחצית מן התעריף הבסיסי.סרטטו תרשים הייררכייה המתאר את הקשר בין המחלקות של המערכת הממוחשבת. יש לסמן ירושה באמצעות החץ (———▶) והכלה באמצעות הסימן (———◆).
כתבו את כותרות המחלקות ואת התכונות שלהן. הניחו שהפעולות get ו-set (ב-C#: Get ו-Set) קיימות בכל התכונות של המחלקות, ואין צורך לממש אותן.
נתונה הפעולה הבונה של המחלקה Contract (אין צורך לממש אותה):
java1public Contract (String name, int days, int kilo)
(1) לפניכם כותרת הפעולה הבונה של המחלקה Vehicle. הפעולה מקבלת שם לקוח, מספר ימי השכרה, מספר קילומטרים שנסע הלקוח ומזהה כלי רכב. ממשו את הפעולה הבונה:
java1public Vehicle (String name, int days, int kilo, String id)
(2) לפניכם כותרת הפעולה הבונה של המחלקה Car. הפעולה מקבלת שם לקוח, מספר ימי השכרה, מספר קילומטרים שנסע הלקוח, מזהה כלי רכב ומספר מקומות ישיבה. ממשו את הפעולה הבונה:
java1public Car (String name, int days, int kilo, String id, int seats)
(ב-C#: string במקום String.)
הפעולה payment (ב-C#: Payment) מחזירה מספר ממשי השווה לסכום שהלקוח נדרש לשלם בעבור כל אחד מסוגי כלי הרכב שהחברה משכירה (בהתאם לעצם שזימן את הפעולה, ולפי התעריפים המפורטים בתיאור המערכת).
(1) כתבו את הפעולה payment במחלקה Vehicle (כאמור לעיל, הסכום לתשלום הוא לפי התעריף הבסיסי).
(2) הוסיפו את הפעולה payment למחלקה/ות האחרות כדי לבצע את הנדרש (רק במחלקות שיש בהן צורך), לפי עקרונות תכנות מונחה עצמים.
הערה: אין להשתמש בפעולה instanceOf בסעיף זה ובפעולות של המחלקה Object, ואין לשנות את תכונות המחלקות.