בחנות הכולבו "הכול לבית" מוכרים מוצרי מזון שאינם דורשים אחסון בקירור, מוצרי מזון הדורשים אחסון בקירור, ומוצרי אלקטרוניקה.
כדי לנהל את מלאי המוצרים שבחנות נבנו המחלקות: Item — מוצר, FoodItem — מוצר מזון, FoodRefrigerated — מוצר מזון הדורש אחסון בקירור, ElectronicItem — מוצר אלקטרוניקה, ו-ItemDate — מחלקה המייצגת תאריך, ובה 3 תכונות מטיפוס שלם: day (יום), month (חודש), year (שנה).
המידע ששומרים בנוגע לכל אחד מן המוצרים:
name — שם המוצר, מחרוזתcatalogNumber — מספר קטלוגי, שלםquantity — מספר הפריטים מן המוצר במלאי, שלםminQuantity — המספר המינימלי של הפריטים מן המוצר שיש להחזיק במלאי, שלםהמידע הנוסף בנוגע לכל מוצרי המזון:
expiryDate — תאריך התפוגה של המוצר, מטיפוס ItemDateהמידע הנוסף בנוגע למוצרי המזון הדורשים אחסון בקירור:
minTemperature — הטמפרטורה המינימלית הנדרשת לאחסון מוצר המזון, שלםmaxTemperature — הטמפרטורה המקסימלית האפשרית לאחסון מוצר המזון, שלםהמידע הנוסף בנוגע למוצרי האלקטרוניקה:
guaranteeDate — תאריך סוף האחריות של המוצר, מטיפוס ItemDateהערה: מוצרי המזון שאינם דורשים אחסון בקירור ומוצרי האלקטרוניקה נשמרים בכל טמפרטורה. הניחו שבכל המחלקות יש פעולות בונות ופעולות get ו-set (ב-C#: Get ו-Set).
1public class Tester {
2 public static boolean canBeStored (Item item, int temp) {
3 return item.canBeStored (temp);
4 }
5}סרטטו תרשים הייררכייה בין המחלקות Item, ElectronicItem, FoodItem, FoodRefrigerated, ItemDate. יש לסמן ירושה באמצעות החץ (———▶) והכלה באמצעות הסימן (———◆).
ממשו את הפעולה הפנימית isMissing (ב-C#: IsMissing). הפעולה תחזיר true אם מספר הפריטים מן המוצר במלאי נמוך מן המספר המינימלי של הפריטים הנדרש במלאי, אחרת היא תחזיר false. ציינו באיזו מחלקה נמצאת הפעולה.
במחלקה Tester הוגדרה הפעולה שבקוד. הפעולה canBeStored (ב-C#: CanBeStored) מחזירה true אם אפשר לשמור את המוצר item בטמפרטורה temp, אחרת היא מחזירה false. הוסיפו פעולות נדרשות למחלקות כדי שהפעולה תבצע את הנדרש. ציינו בעבור כל פעולה באיזו מחלקה היא מוספת.
בחנות הכולבו "הכול לבית" מוכרים מוצרי מזון שאינם דורשים אחסון בקירור, מוצרי מזון הדורשים אחסון בקירור, ומוצרי אלקטרוניקה.
כדי לנהל את מלאי המוצרים שבחנות נבנו המחלקות: Item — מוצר, FoodItem — מוצר מזון, FoodRefrigerated — מוצר מזון הדורש אחסון בקירור, ElectronicItem — מוצר אלקטרוניקה, ו-ItemDate — מחלקה המייצגת תאריך, ובה 3 תכונות מטיפוס שלם: day (יום), month (חודש), year (שנה).
המידע ששומרים בנוגע לכל אחד מן המוצרים:
name — שם המוצר, מחרוזתcatalogNumber — מספר קטלוגי, שלםquantity — מספר הפריטים מן המוצר במלאי, שלםminQuantity — המספר המינימלי של הפריטים מן המוצר שיש להחזיק במלאי, שלםהמידע הנוסף בנוגע לכל מוצרי המזון:
expiryDate — תאריך התפוגה של המוצר, מטיפוס ItemDateהמידע הנוסף בנוגע למוצרי המזון הדורשים אחסון בקירור:
minTemperature — הטמפרטורה המינימלית הנדרשת לאחסון מוצר המזון, שלםmaxTemperature — הטמפרטורה המקסימלית האפשרית לאחסון מוצר המזון, שלםהמידע הנוסף בנוגע למוצרי האלקטרוניקה:
guaranteeDate — תאריך סוף האחריות של המוצר, מטיפוס ItemDateהערה: מוצרי המזון שאינם דורשים אחסון בקירור ומוצרי האלקטרוניקה נשמרים בכל טמפרטורה. הניחו שבכל המחלקות יש פעולות בונות ופעולות get ו-set (ב-C#: Get ו-Set).
1public class Tester {
2 public static boolean canBeStored (Item item, int temp) {
3 return item.canBeStored (temp);
4 }
5}סרטטו תרשים הייררכייה בין המחלקות Item, ElectronicItem, FoodItem, FoodRefrigerated, ItemDate. יש לסמן ירושה באמצעות החץ (———▶) והכלה באמצעות הסימן (———◆).
ממשו את הפעולה הפנימית isMissing (ב-C#: IsMissing). הפעולה תחזיר true אם מספר הפריטים מן המוצר במלאי נמוך מן המספר המינימלי של הפריטים הנדרש במלאי, אחרת היא תחזיר false. ציינו באיזו מחלקה נמצאת הפעולה.
במחלקה Tester הוגדרה הפעולה שבקוד. הפעולה canBeStored (ב-C#: CanBeStored) מחזירה true אם אפשר לשמור את המוצר item בטמפרטורה temp, אחרת היא מחזירה false. הוסיפו פעולות נדרשות למחלקות כדי שהפעולה תבצע את הנדרש. ציינו בעבור כל פעולה באיזו מחלקה היא מוספת.