Una variable que sólo puede tener uno de dos valores, verdadero o falso, es una variable de tipo booleano, y verdadero y falso son cantidades directas booleanas. Puede definir una variable booleana denominada estado utilizando la siguiente declaración:
estado booleano = verdadero
Esta declaración inicializa el estado de la variable con un valor verdadero. También puede utilizar la declaración de asignación para asignar un valor a una variable booleana. Por ejemplo, la declaración,
estado = falso
Establezca el valor de la variable estado en falso.
Actualmente, no podemos hacer mucho más que asignar valores a variables booleanas, pero como verás en el próximo capítulo, las variables booleanas son útiles a la hora de tomar decisiones en un programa, especialmente cuando podemos usar expresiones para generar un It. es más útil para resultados booleanos.
Hay varios operadores que combinan valores booleanos, incluidos: booleano AND (AND), booleano OR (oR) y booleano NOT (que corresponden a &&, 11 y !, respectivamente), así como operadores de comparación que producen resultados booleanos. En lugar de aprenderlos ahora en abstracto, pasaremos al siguiente capítulo, donde podremos ver en ejercicios cómo aplicarlos para cambiar el orden de ejecución de un programa.
Una cosa que debe tener en cuenta es que la variable booleana es diferente de otros tipos de datos básicos. No se puede convertir a ningún otro tipo básico y otros tipos básicos no se pueden convertir al tipo booleano.
Comparación de tres métodos para generar objetos booleanos en Java
La primera forma común en que Java genera objetos booleanos es mediante el nuevo operador.
Booleano booleano1 = nuevo booleano(1==1);
El segundo es a través del método estático valueOf.
Booleano booleano1 = Booleano.valueOf(1==1);
El tercer tipo es el boxeo automático después de JDK1.5.
Booleano booleano1 = 1==1;
¿Cuál es la diferencia entre estos tres métodos?
Veamos primero un fragmento de código.
Booleano[] booleano1 = nuevo booleano[100];Booleano[] booleano2 = nuevo booleano[100];Booleano[] booleano3 = nuevo booleano[100];for (int i = 0; i < 100;i++){ booleano1[i ] = Boolean.valueOf(1==1);}para (int i = 0;i < 100;i++){ boolean2[i] = new Boolean(1==1);}for (int i = 0; i < 100;i++){ boolean3[i] = 1==1;}System.out.println("valueOf: " + String.valueOf(boolean1[1] == boolean1[2]));System.out.println("nuevo booleano: " + String.valueOf(boolean2[1] == boolean2[2]));System.out.println("ajuste automático: " + String.valueOf(boolean3[1] == boolean3[2]));
La salida es:
valor de: verdadero nuevo booleano: falso ajuste automático: verdadero
¿Por qué sucede esto?
La razón es que el objeto booleano creado con new crea continuamente un nuevo objeto de instancia, mientras que valueOf devuelve las variables miembro estáticas en la clase booleana y no genera una gran cantidad de variables de instancia idénticas. El ajuste automático es similar al valor de.
De hecho, el documento jdk también recomienda usar valueOf en lugar de new para crear objetos de clase booleanos.