Pregunta

Si bien sé que, por definición, un valor lógico consiste en sólo dos estados, verdadero o falso. Me preguntaba qué valor tiene un valor booleano antes de que se inicia con uno de estos estados.

¿Fue útil?

Solución

Su valor predeterminado es falso.

Editar Por demanda popular:

  

a menos que esté utilizando el booleano , que por defecto es nulo. - sudhir.j

Otros consejos

Si se trata de una variable local, se trata de un error del compilador para hacer referencia a ella antes de que se ha inicializado. Si se trata de un campo, se inicializa a falso.

public class NewMain {

    boolean foo;
    Boolean bar;

    public static void main(String[] args) {
        NewMain obj = new NewMain();

        obj.whatBoolean();
    }

    public void whatBoolean() {
        System.out.println(foo);
        System.out.println(bar);
    }
}

salidas

false
null

Sé que esto era más filosófica de una pregunta, pero gracias a autoboxing puede utilizar Java como un lenguaje orientado a objetos casi verdaderamente (odio tener tipos primitivos ... ahora sólo si funcionaría a la inversa también). Lo hace, sin embargo, cambiar el comportamiento cuando se utiliza un objeto (para mejor OMI).

No hay un tercer estado. Como dijo @Yishai, si no se asigna un valor, campos booleanos defecto a false. Las variables locales deben ser asignados antes de su uso:

  

Acceso a un local de no inicializado   variables dará lugar a un tiempo de compilación   error

el doc .

En Java tipos booleanos predeterminada en False.

FYI, valores predeterminados booleanas en false, por defecto números primitiva a 0, 0L, 0f o 0d como apropiadas, valores predeterminados char a '\ 0', referencias a objetos (tales como Boolean) predeterminado a null.

Esto también se aplica al contenido de las matrices. (A Gotcha común es que una matriz de objetos está inicialmente lleno de valores nulos)

Es false

Si tuviera algo así como

boolean isTrue;

System.out.println(isTrue);

Usted debe obtener un error de tiempo de compilación porque el booleano no se ha inicializado. Por defecto cuando intenta inicializar esto se establece en false;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top