Hi,
hab eine Frage zur Aufgabe 1a.
Bei OUT 5: muss da nicht y = -5.0 -32 = -37.0 stehen??
Gruss
Anand
class A {
public static int x = 7;
public int y = -4;
public A ( ) {
x = 3* x + 1 ;
}
public A ( int z ) {
x = z - x;
}
public void f ( int z ) {
x += 2 ;
y -= 2 ;
}
public void g ( double z ) {
x += 4 ;
y -= 4 ;
}
public void h ( int z ) {
x += 8 ;
y -= 8 ;
}
}
class B extends A {
public double y = 1.0;
private int w = 2 ;
public B ( int z ) {
super(1);
y += x ;
x += z ;
}
public void f ( double z ) {
x += 16 ;
y -= 16 ;
}
public void g ( int z ) {
x += 32 ;
y -= 32 ;
}
public void h ( int z ) {
x += 64 ;
y -= 64 ;
}
}
public class Main {
public static void main ( String [ ] args ) {
A a = new B ( 5 ) ;
// OUT:
System.out.println("1. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
a.f(2);
// OUT:
System.out.println("2. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
((B)a ).f(2);
// OUT:
System.out.println("3. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
a.g(2);
// OUT:
System.out.println("4. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
((B)a ). g (2);
// OUT:
System.out.println("5. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
a.h(2);
// OUT:
System.out.println("6. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
((B)a ). h (2);
// OUT:
System.out.println("7. A.x="+A.x+", a.y="+a.y+", ((B)a).y="+((B)a).y);
B b = new B ( -3);
a = b;
// OUT:
System.out.println("8. A.x="+A.x+", a.y="+a.y+ ", ((B)a).y="+((B)a).y+", b.y="+b.y);
}
}
[coolcat@q9300 ~]$ javac Main.java
[coolcat@q9300 ~]$ java Main
1. A.x=-1, a.y=-4, ((B)a).y=-5.0
2. A.x=1, a.y=-6, ((B)a).y=-5.0
3. A.x=3, a.y=-8, ((B)a).y=-5.0
4. A.x=7, a.y=-12, ((B)a).y=-5.0
5. A.x=39, a.y=-12, ((B)a).y=-37.0
6. A.x=103, a.y=-12, ((B)a).y=-101.0
7. A.x=167, a.y=-12, ((B)a).y=-165.0
8. A.x=-169, a.y=-4, ((B)a).y=-165.0, b.y=-165.0
Zurück zu Praktische Informatik