המשימה
המחלקה Hour נתונה לך **מוכנה** — אל תשנה אותה. יש לה שעה, דקות, ופעולה toMinutes שמחזירה כמה דקות עברו מתחילת היממה. בנה מחלקה בשם Parking שמייצגת חנייה אחת: • תכונה פרטית id (מחרוזת — מספר הרכב). • שתי תכונות פרטיות מטיפוס **Hour**: שעת כניסה ושעת יציאה. • בנאי שמקבל id ושתי שעות. • פעולות מאחזרות ל-id ולשעת הכניסה. • פעולה totalMinutes שמחזירה כמה דקות ארכה החנייה. ובנוסף, **פעולה חיצונית** (סטטית) שמקבלת מערך חניות ומחזירה את החנייה הארוכה ביותר. דוגמה: כניסה 08:30, יציאה 10:00 → 90 דקות. הנחיות: • תכונה יכולה להיות עצם, לא רק מספר או מחרוזת. זו הנקודה של התרגיל. • אל תשכפל את החישוב של Hour בתוך Parking — קרא ל-toMinutes. אורך החנייה הוא הפרש שתי התוצאות. • הנח שהיציאה מאוחרת מהכניסה, באותה יממה. • הפעולה החיצונית מחזירה את **העצם** Parking, לא את מספר הדקות. [טבלה]
קוד הפתיחה
// ── נתון, אל תשנה ─────────────────────────────────────────────
class Hour {
private int hour;
private int minutes;
public Hour(int hour, int minutes) {
this.hour = hour;
this.minutes = minutes;
}
public int getHour() { return this.hour; }
public int getMinutes() { return this.minutes; }
/** כמה דקות עברו מתחילת היממה. */
public int toMinutes() { return this.hour * 60 + this.minutes; }
}
// ──────────────────────────────────────────────────────────────
class Parking {
// הגדר כאן את התכונות — id, ושתי שעות
public Parking(String id, Hour in, Hour out) {
// אתחל את התכונות
}
public String getId() {
return "";
}
public Hour getIn() {
return null;
}
/** כמה דקות ארכה החנייה. */
public int totalMinutes() {
// כתוב את הפתרון כאן — היעזר ב-toMinutes
return 0;
}
}
public class Main {
/** מחזירה את החנייה הארוכה ביותר במערך. */
public static Parking longest(Parking[] arr) {
// כתוב את הפתרון כאן
return arr[0]; // מציב זמני
}
public static void main(String[] args) {
Parking[] lot = {
new Parking("11-111-11", new Hour(8, 30), new Hour(10, 0)),
new Parking("22-222-22", new Hour(9, 0), new Hour(9, 45)),
new Parking("33-333-33", new Hour(6, 0), new Hour(12, 0))
};
System.out.println(lot[0].totalMinutes()); // 90
System.out.println(lot[1].totalMinutes()); // 45
System.out.println(longest(lot).getId()); // 33-333-33
Hour in = longest(lot).getIn();
System.out.println(in == null ? "null" : "" + in.getHour()); // 6
Parking zero = new Parking("00-000-00", new Hour(7, 0), new Hour(7, 0));
System.out.println(zero.totalMinutes()); // 0
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.