Java - cambiar valor variable booleana

 
Vista:

cambiar valor variable booleana

Publicado por Alejandro (279 intervenciones) el 18/12/2006 06:26:46
Saludos compañeros, tengo este codigo para cambiar el valor de una variable booleana:

public void cambia(Boolean b)
{
a=new Boolean(false);
}

public class Hola ()
{
vble=new Boolean(true);
cambia(vble);
}

pero no me cambia el valor de esa variable booleana, y pense que creando un objeto Boolean si podia cambiar dicho valor (tambien quiero que dicho valor se modifique pasandolo de una clase a otra). Como lo puedo hacer ?

Gracias.
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:cambiar valor variable booleana

Publicado por Tom (1831 intervenciones) el 18/12/2006 07:25:50
¿ De veras no te das cuenta de lo que hace (y de lo que no hace) tu ejemplo ?
¿ Por qué no pruebas algo más fácil (y tómate un cafelito ;-))?

public boolean cambia(boolean b) {
if(b) b=false
else b = true;

return b;
}

public class Hola() {
boolean test = false;
test = cambia(test);
}
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

RE:cambiar valor variable booleana

Publicado por Alejandro (279 intervenciones) el 18/12/2006 07:31:57
Vale, gracias por tu ayuda (y por tu consejo del cafe, aunque no lo necesito, y si consulto algo en este foro es porque no lo se, para eso lo pregunto y agradezco la ayuda de todo el mundo).

Si le quiero pasar una variable booleana a otra clase donde le cambio su valor (en lugar de cambiarlo en un metodo de la misma clase), lo tengo que declarar como Boolean para que dicho cambio se vea reflejado en la clase origen ???

Gracias.
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

RE:cambiar valor variable booleana

Publicado por Tom (1831 intervenciones) el 18/12/2006 08:43:25
Tienes que retornar la variable modificada, como en el ejemplo que te pongo.

Cuando pasas una variable simple a una función, java la pasa "por valor". Cuando pasas un objeto, se pasa por referencia.
Pero, como ya has visto, Boolean no tiene ningún método para cambiar el valor de un objeto ya definido, así que lo que haces es asignar a tu referencia de objeto una nueva referencia a otro objeto. Pues bien, si no retornas esta nueva ref. lógicamente la pierdes.
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