Que tal... tengo un grave problema con un programa que estoy haciendo. Sucede que tengo mi clase principal(main), y otras 2 clases. Tengo una variable que instancio en la claes principal y que se la paso a cada a las otras clases, esto por que necesito que si en clase A se modifico la variable, la clase B sepa acerca de esa modificación. El detalle es que, según yo, se las estoy pasando bien, pero hay inconsistencia de datos, es decir lo que le hace la clase A a la variable, ni se enteran las demás clases.
Aqui les paso un bosquejo de como estoy haciendo esto, espero que me digan en que estoy mal, si en todo o que... jeje
public class ClaseA {
private Integer val;
public ClaseA( Integer v )
{
val = v;
edit();
}
private void edit()
{
val = new Integer(val.intValue() + 10);
System.out.println( "Clase A: " + val );
}
}
public class ClaseB {
private Integer val;
public ClaseB( Integer v )
{
val = v;
edit();
}
private void edit()
{
val = new Integer(val.intValue() + 20);
System.out.println( "Clase B: " + val );
}
}
public class Principal {
private ClaseA a;
private ClaseB b;
private Integer val;
public Principal()
{
val = new Integer( 0 );
a = new ClaseA( val );
b = new ClaseB( val );
}
public static void main(String[] args) {
new Principal();
}
}
al correr esto, me muestra los siguentes resultados:
Clase A: 10
Clase B: 20
y lo que yo hubiera esperado es:
Clase A: 10
Clase B: 30
?????
Aqui les paso un bosquejo de como estoy haciendo esto, espero que me digan en que estoy mal, si en todo o que... jeje
public class ClaseA {
private Integer val;
public ClaseA( Integer v )
{
val = v;
edit();
}
private void edit()
{
val = new Integer(val.intValue() + 10);
System.out.println( "Clase A: " + val );
}
}
public class ClaseB {
private Integer val;
public ClaseB( Integer v )
{
val = v;
edit();
}
private void edit()
{
val = new Integer(val.intValue() + 20);
System.out.println( "Clase B: " + val );
}
}
public class Principal {
private ClaseA a;
private ClaseB b;
private Integer val;
public Principal()
{
val = new Integer( 0 );
a = new ClaseA( val );
b = new ClaseB( val );
}
public static void main(String[] args) {
new Principal();
}
}
al correr esto, me muestra los siguentes resultados:
Clase A: 10
Clase B: 20
y lo que yo hubiera esperado es:
Clase A: 10
Clase B: 30
?????