cristian8503
14-12-2008, 18:21
Chi mi sà spiegare perchè stampa tale codice?ho problemi con le variabili private e static e con i rifermenti agli oggetti creati!!!! :-(
//stampa:
1,3,2,6
2,3,4,6,3,6
2,3,4,6,3,6
abstract class A {
private int na1;
private static int na2;
public A(int n1, int n2){na1=n1; na2=n2;}
public void update(int n1, int n2) {na1=n1; na2=n2;}
public void dump(){System.out.print(na1+","+na2);}
}
class B extends A {
private int nb1;
private static int nb2;
protected A aRef;
public B(int n1, int n2) {super(n1, n2); nb1=n1*2; nb2=n2*2;}
public void setA (A a) {aRef=a;}
public void update(int n1, int n2) {nb1=n1; nb2=n2;}
public void dump(){super.dump();System.out.print(","+nb1+","+nb2);}
}
class C extends B {
private int nc1;
private static int nc2;
protected B bRef;
public C(int n1, int n2) {super(n1, n2); nc1=n1*3; nc2=n2*3;}
public void setB (B b) {bRef=b;}
public void update(int n1, int n2) {nc1=n1; nc2=n2;}
public void dump(){super.dump();System.out.print(","+nc1+","+nc2);}
}
public class Test {
public static void main(String[] args) {
B b = new B(1,2);
C c1 = new C(2,3);
C c2 = c1;
c2.update(3,6);
b.dump(); System.out.println();
c1.dump(); System.out.println();
c2.dump(); System.out.println();
}
}
//stampa:
1,3,2,6
2,3,4,6,3,6
2,3,4,6,3,6
abstract class A {
private int na1;
private static int na2;
public A(int n1, int n2){na1=n1; na2=n2;}
public void update(int n1, int n2) {na1=n1; na2=n2;}
public void dump(){System.out.print(na1+","+na2);}
}
class B extends A {
private int nb1;
private static int nb2;
protected A aRef;
public B(int n1, int n2) {super(n1, n2); nb1=n1*2; nb2=n2*2;}
public void setA (A a) {aRef=a;}
public void update(int n1, int n2) {nb1=n1; nb2=n2;}
public void dump(){super.dump();System.out.print(","+nb1+","+nb2);}
}
class C extends B {
private int nc1;
private static int nc2;
protected B bRef;
public C(int n1, int n2) {super(n1, n2); nc1=n1*3; nc2=n2*3;}
public void setB (B b) {bRef=b;}
public void update(int n1, int n2) {nc1=n1; nc2=n2;}
public void dump(){super.dump();System.out.print(","+nc1+","+nc2);}
}
public class Test {
public static void main(String[] args) {
B b = new B(1,2);
C c1 = new C(2,3);
C c2 = c1;
c2.update(3,6);
b.dump(); System.out.println();
c1.dump(); System.out.println();
c2.dump(); System.out.println();
}
}