טוען...
טוען...
לפניך המחלקות A ו-B. סעיפים א-ג מתייחסים למחלקות אלה.
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; xA=1 xB=20; xA=1 xB=20; xA=1 xB=20;בסדרת ההוראות נפלה שגיאת הידור (קומפילציה). תקן את השגיאה כדי שיתקבל הפלט הנכון.
java1A a1 = new B(1, 20);
2Object obj = a1;
3B b1 = a1;
4A a2 = a1;
5System.out.println(a1 + " " + obj + " " + a2 + " " + b1);
לפניך סדרת הוראות. הצג את העצמים הנוצרים, ולכל עצם הצג את ערכי התכונות שלו.
java1A aa = new B(3, 10);
2aa.sub();
3Object[] ar = new Object[6];
4ar[0] = new A();
5ar[1] = new A(5);
6ar[2] = new B();
7ar[3] = new B(5);
8ar[4] = new B(2, 4);
9ar[5] = aa;
10((A)ar[3]).tripleX();
11((B)ar[4]).tenTimesX();
לפניך פעולה ראשית.
java1public static void main(String[] args)
2{
3 A a1 = new A(1);
4 A a2 = new B(2, 99);
5 //***
6}
לפניך הקטעים (i)-(vi).
(i)
java1a2.doubleX();
2System.out.println(a2);
(ii)
java1a2.tenTimesX();
2System.out.println(a2.tenTimesX());
(iii)
java1if (a2 instanceof B)
2{
3 a2.tenTimesX();
4 System.out.println(a2);
5}
(iv)
java1((B)a1).tenTimesX();
2System.out.println(a1);
(v)
java1a2.calc();
2System.out.println(a2);
(vi)
java1B bb = (B)a2;
2System.out.println(bb.baseX());
בעבור כל אחד מן הקטעים (i)-(vi) בצע:
//*** בפעולה הראשית.לפניך המחלקות A ו-B. סעיפים א-ג מתייחסים למחלקות אלה.
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; xA=1 xB=20; xA=1 xB=20; xA=1 xB=20;בסדרת ההוראות נפלה שגיאת הידור (קומפילציה). תקן את השגיאה כדי שיתקבל הפלט הנכון.
java1A a1 = new B(1, 20);
2Object obj = a1;
3B b1 = a1;
4A a2 = a1;
5System.out.println(a1 + " " + obj + " " + a2 + " " + b1);
לפניך סדרת הוראות. הצג את העצמים הנוצרים, ולכל עצם הצג את ערכי התכונות שלו.
java1A aa = new B(3, 10);
2aa.sub();
3Object[] ar = new Object[6];
4ar[0] = new A();
5ar[1] = new A(5);
6ar[2] = new B();
7ar[3] = new B(5);
8ar[4] = new B(2, 4);
9ar[5] = aa;
10((A)ar[3]).tripleX();
11((B)ar[4]).tenTimesX();
לפניך פעולה ראשית.
java1public static void main(String[] args)
2{
3 A a1 = new A(1);
4 A a2 = new B(2, 99);
5 //***
6}
לפניך הקטעים (i)-(vi).
(i)
java1a2.doubleX();
2System.out.println(a2);
(ii)
java1a2.tenTimesX();
2System.out.println(a2.tenTimesX());
(iii)
java1if (a2 instanceof B)
2{
3 a2.tenTimesX();
4 System.out.println(a2);
5}
(iv)
java1((B)a1).tenTimesX();
2System.out.println(a1);
(v)
java1a2.calc();
2System.out.println(a2);
(vi)
java1B bb = (B)a2;
2System.out.println(bb.baseX());
בעבור כל אחד מן הקטעים (i)-(vi) בצע:
//*** בפעולה הראשית.