java
public class A { private int x; public A() { this.x = 0; } public A(int x) { this.x = x; } public int getX() { return x; } public void doubleX() { this.x = 2 * getX(); } public void tripleX() { this.x = 3 * getX(); } public void sub() { this.x = x - 1; } public void calc() { sub(); } public String toString() { return "xA=" + this.x; } } public class B extends A { private int x; public B() { super(); this.x = 1; } public B(int x) { super(x); this.x = -x; } public B(int xA, int xB) { super(xA); this.x = xB; } public int getX() { return x; } public int baseX() { return super.getX(); } public void tenTimesX() { this.x = 10 * getX(); } public void tripleX() { this.x = 3 * getX(); } public void sub() { this.x = x - 2; } public String toString() { return super.toString() + " xB=" + this.x + ";"; } }
לפניך סדרת הוראות שהפלט שלה צריך להיות: xA=1 xB=20; (ארבע פעמים, מופרד ברווחים). בסדרת ההוראות נפלה שגיאת הידור. תקן את השגיאה כדי שתתקבל הפלט הנכון: A a1 = new B(1, 20); Object obj = a1; B b1 = a1; A a2 = a1; System.out.println(a1+" "+obj+" "+a2+" "+b1);
לפניך סדרת הוראות (aa=new B(3,10); aa.sub(); מערך Object בגודל 6 עם A(),A(5),B(),B(5),B(2,4) ואיבר aa; ואז ((A)ar[3]).tripleX(); ו-((B)ar[4]).tenTimesX();). הצג את העצמים הנוצרים ולכל עצם הצג עם ערכי התכונות שלו.
בעבור a1=new A(1); a2=new B(2,99); בצע במקום //*** בפעולה הראשית: a2.doubleX(); System.out.println(a2); קבע אם הקטע תקין. אם תקין — כתוב את הפלט המתקבל.
בצע במקום //***: a2.tenTimesX(); System.out.println(a2.tenTimesX()); קבע אם הקטע תקין או אינו תקין; אם אינו תקין — קבע אם השגיאה היא שגיאת הידור או שגיאת זמן ריצה.
בצע במקום //***: if (a2 instanceof B) { a2.tenTimesX(); System.out.println(a2); } קבע אם הקטע תקין או אינו תקין; אם אינו תקין — קבע אם השגיאה היא שגיאת הידור או שגיאת זמן ריצה.
בצע במקום //***: ((B)a1).tenTimesX(); System.out.println(a1); קבע אם הקטע תקין או אינו תקין; אם אינו תקין — קבע אם השגיאה היא שגיאת הידור או שגיאת זמן ריצה.
בצע במקום //***: a2.calc(); System.out.println(a2); קבע אם הקטע תקין. אם תקין — כתוב את הפלט המתקבל.
בצע במקום //***: B bb = (B)a2; System.out.println(bb.baseX()); קבע אם הקטע תקין. אם תקין — כתוב את הפלט המתקבל.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.