נתון פרויקט שהוגדרו בו שלוש מחלקות Employee, Manager, Intern ומחלקה Driver, כך:
נתון פרויקט שהוגדרו בו שלוש מחלקות Employee, Manager, Intern ומחלקה Driver, כך:
public class Employee {
private int seniority; // ותק
public Employee(int seniority) {
this.seniority = seniority;
}
public int getSeniority() {
return this.seniority;
}
public boolean check(Employee e) {
System.out.println("EmpCheck");
return this.seniority > e.seniority;
}
}
public class Manager extends Employee {
public Manager(int seniority) {
super(seniority);
}
public boolean check(Manager m) {
System.out.println("MgrCheck");
return this.getSeniority() == m.getSeniority();
}
}
public class Intern extends Employee {
private int mentorId;
public Intern(int seniority, int mentorId) {
super(seniority);
this.mentorId = mentorId;
}
public boolean check(Employee e) {
System.out.println("IntCheck");
if (!(e instanceof Intern)) {
return true;
}
Intern other = (Intern) e;
return this.mentorId == other.mentorId;
}
}
public class Driver
{
public static void main(String[] args)
{
Employee e1 = new Manager(15);
Manager m1 = new Manager(15);
Employee e2 = new Employee(10);
Employee i1 = new Intern(2, 800);
Intern i2 = new Intern(2, 900);
Intern i3 = new Intern(5, 800);
(1) System.out.println(e1.check(m1));
(2) System.out.println(m1.check(e1));
(3) System.out.println(m1.check(m1));
(4) System.out.println(i1.check(e2));
(5) System.out.println(i1.check(i2));
(6) System.out.println(i1.check(i3));
(7) System.out.println(e2.check(i1));
}
}
סעיף א
עבור כל אחת מהפקודות 1–7, כתבו מה יהיה הפלט של הפקודה.
סעיף ב
נתונה הפקודה: System.out.println(i1.check(XXX) כאשר XXX הוא משתנה שהוגדר בפעולה הראשית main במחלקה Driver.
כתבו את כל המשתנים שאפשר לשים במקום XXX כדי שלאחר ביצוע הפקודה יודפס הפלט "IntCheck false".
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.