אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2025 · אביב מועד ב · שאלה 4כל שאלות המבחן ←
תכנות מונחה עצמיםפולימורפיזם ומחלקות מופשטות

נתונות שתי המחלקות Car, Motorcycle. למחלקות יש תכונה אחת – מהירות מרבית.

public class Car {
    private int speed;
    public Car (int s) { speed = s; }
    public int getSpeed () { return speed; }
    public boolean equals(Car other) {
        return (other!=null) && (speed == other.speed);
    }
}
public class Motorcycle {
    private int speed;
    public Motorcycle (int s) { speed = s; }
    public int getSpeed () { return speed; }
    public boolean equals (Object other) {
        return ((other != null) &&
                (other instanceof Motorcycle) &&
                (speed == ((Motorcycle)other).speed));
    }
}
סעיף א

כתבו פעולה המקבלת מערך הפניות לעצמים מסוג Object. הפעולה תחזיר מספר אופנועים (עצמים מסוג Motorcycle) שמהירותם המרבית היא בין 180 ל-250 קמ"ש.

כותרת הפעולה:

public static int countCars(Object[] vehicles)
סעיף ב

נתונה המחלקה Drive:

public class Drive {
    public static void main (String[] args) {
        Car c1 = new Car (180);
        Object c2 = new Car (180);
        Motorcycle m1 = new Motorcycle (180);
        Object m2 = new Motorcycle (180);
        // *******
    }
}

בהתייחס לכל אחת מהשורות שלפניכם, כתבו מה יקרה בעקבות הוספתה לשיטה Main שלעיל, לאחר ההצהרות על האובייקטים (במקום שמסומן בכוכביות ***). אם הוספת פקודת קוד גורמת לשגיאה יש להסביר מהי השגיאה (שגיאת קומפילציה או שגיאת זמן ריצה).

(1) System.out.println(c1.speed); (2) System.out.println(((Motorcycle)c2).getSpeed()); (3) System.out.println(c1.equals(c2)); (4) System.out.println(c2.equals(c1)); (5) System.out.println(m1.equals(m2)); (6) System.out.println(m2.equals(m1)); (7) System.out.println(c1.equals((Motorcycle)m2)); (8) System.out.println(c1.equals((Car)c2)); (9) System.out.println(m1.equals((Car)c2)); (10) System.out.println(m1.equals((Motorcycle)c2));

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

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

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

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