Java - Tengo un pequeño problema con clases internas

   
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Tengo un pequeño problema con clases internas

Publicado por ideasjava (16 intervenciones) el 16/09/2007 21:12:27
Hola. Ejecutamos el codigo que enviaste
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);
System.out.println("a1.i="+a1.i+" a2.i="+a2.i);
A.Bs b1 = new A.Bs(-10);
A.Bs b2 = new A.Bs(-11);
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
}
}

y arroja los siguientes resultados

a1.i=11 a2.i=12
j=-10is=-1
j=-11is=-1
i=11 unBs.j=-10
i=11 unBs.j=-11

Son correctos. Tal vez es un error del libro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar