נתונות שתי המחלקות Car, Motorcycle. למחלקות יש תכונה אחת – מהירות מרבית.
נתונות שתי המחלקות Car, Motorcycle. למחלקות יש תכונה אחת – מהירות מרבית.
public class Car {
private int speed;
public Car (int s) { speed = s; }
public int GetSpeed () { return speed; }
public bool 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 bool Equals (Object other) {
return ((other != null) &&
(other is 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) Console.WriteLine(c1.speed);
(2) Console.WriteLine(((Motorcycle)c2).GetSpeed());
(3) Console.WriteLine(c1.Equals(c2));
(4) Console.WriteLine(c2.Equals(c1));
(5) Console.WriteLine(m1.Equals(m2));
(6) Console.WriteLine(m2.Equals(m1));
(7) Console.WriteLine(c1.Equals((Motorcycle)m2));
(8) Console.WriteLine(c1.Equals((Car)c2));
(9) Console.WriteLine(m1.Equals((Car)c2));
(10) Console.WriteLine(m1.Equals((Motorcycle)c2));
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.