נתונות שתי המחלקות 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 קמ"ש.
כותרת הפעולה:
```java
public static int countCars(Object[] vehicles)
```
כותרת הפעולה:
```java
public static int countCars(Object[] vehicles)
```
(ב)נתונה המחלקה Drive:
```java
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));`
```java
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));`
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות
שאלו כאן — ותקבלו מענה מוסמך.
רוצים לתרגל אלפי שאלות נוספות?
המשיכו לתרגול מלא עם משוב אישי ←מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות