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

ארבע מחלקות A,B,C ומחלקת בדיקה TestABC עם main. השאלה מודפסת ללא סעיפים נפרדים (סעיף יחיד, 15 נק') — יש לעקוב אחרי כל הפעולה הראשית ולרשום את הפלט המלא, כולל ערכי התכונות של כל עצם.

public class A {
    protected int x;
    public A() { this.x = 1; }
    public A(int x) { this.x = x; }
    public void change() { this.x = this.x * 2; }
    public String toString() { return "X=" + this.x; }
}

public class B extends A {
    protected int y;
    public B(int y) { this.y = -y; }
    public B(int x, int y) { super(x); this.y = -y; }
    public String toString() { return super.toString() + " Y=" + this.y; }
}

public class C extends B {
    private int z;
    public C(int x, int y, int z) { super(x, y); this.z = z; }
    public void change() {
        this.x = 3 * this.x;
        this.y = 3 * this.y;
        this.z = 3 * this.z;
    }
    public String toString() { return super.toString() + " Z=" + this.z; }
}

public class TestABC {
    public static void main(String[] args) {
        A[] data = new A[5];
        data[0] = new A(5);
        data[1] = new B(5,10);
        data[2] = new C(5,10,15);
        data[3] = data[0];
        data[4] = new B(5);

        for (int i = 0; i < data.length; i++)
            System.out.println(data[i]);

        for (int i = 0; i < data.length; i++)
            data[i].change();
        for (int i = 0; i < data.length; i++)
            System.out.println(data[i]);
    }
}
סעיף א

עקבו אחרי ביצוע הפעולה הראשית (main) של המחלקה TestABC ורשמו מה יהיה הפלט של הפעולה הראשית. חובה להציג עבור כל עצם שנוצר בפעולה את ערכי התכונות שלו.

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

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

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

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