Tengo un pequeño problema con clases internas
Publicado por David (11 intervenciones) el 16/09/2007 18:51:24
Hola
Estoy empezando aprender java con un manual y esto en el punto de clases internas .
este es el código del libro :
................................................................................
class A{
int i=-1;
static int is = -1;
public A(int i){this.i=i;}
public void printA(Bs unBs){
System.out.println("i="+i+" unBs.j="+unBs.j);
}
static class Bs{
int j=2;
public Bs(int j){this.j=j;}
public void printBs(){
System.out.println(" j="+j+"is="+is);
}
}
}
class ClasesIntStatic {
public static void main(String [] arg){
A a1 = new A(11) , a2 = new A(12);
println("a1.i="+a1.i+" a2.i="+a2.i);
A.Bs b1 = new A.Bs(-10);
A.Bs b2 = a1.new A.Bs(-11);
println("b1.j="+b1.j+"b2.j="+b2.j);
b1.printBs(); // Escribe : j= -10 is=-1
b2.printBs(); // FIJAROS EN ESTA LÍNEA , LA COMENTO ABAJO
a1.printA(b1); //escribe : i=11 unBs.j = -10
a1.printA(b2); //escribe: i=11 unBs.j=-11
}
}
............................................................................................
Según el manual la línea esta : b2.printBs(); // Escribe j=-20 is=-1
No lo entiendo , por que j = -20 , o el libro ha cometido un error , o síno no entiendo de donde sale ese 20.
Un saludo
Estoy empezando aprender java con un manual y esto en el punto de clases internas .
este es el código del libro :
................................................................................
class A{
int i=-1;
static int is = -1;
public A(int i){this.i=i;}
public void printA(Bs unBs){
System.out.println("i="+i+" unBs.j="+unBs.j);
}
static class Bs{
int j=2;
public Bs(int j){this.j=j;}
public void printBs(){
System.out.println(" j="+j+"is="+is);
}
}
}
class ClasesIntStatic {
public static void main(String [] arg){
A a1 = new A(11) , a2 = new A(12);
println("a1.i="+a1.i+" a2.i="+a2.i);
A.Bs b1 = new A.Bs(-10);
A.Bs b2 = a1.new A.Bs(-11);
println("b1.j="+b1.j+"b2.j="+b2.j);
b1.printBs(); // Escribe : j= -10 is=-1
b2.printBs(); // FIJAROS EN ESTA LÍNEA , LA COMENTO ABAJO
a1.printA(b1); //escribe : i=11 unBs.j = -10
a1.printA(b2); //escribe: i=11 unBs.j=-11
}
}
............................................................................................
Según el manual la línea esta : b2.printBs(); // Escribe j=-20 is=-1
No lo entiendo , por que j = -20 , o el libro ha cometido un error , o síno no entiendo de donde sale ese 20.
Un saludo
Valora esta pregunta


0