Pergunta

Embora eu saiba que, por definição, um booleano consiste em apenas dois estados, verdadeiro ou falso.Eu queria saber qual é o valor que um boolean antes de ser inicializado com um desses estados.

Foi útil?

Solução

Padrão para false.

Editar: Pela demanda popular:

A menos que você esteja usando o embrulhado boleano, que padroniza para NULL. - Sudhir.J

Outras dicas

Se for uma variável local, é um erro do compilador fazer referência a ele antes de ser inicializado. Se for um campo, ele é inicializado para 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);
    }
}

saídas

false
null

Eu sei que isso era mais filosófico de uma pergunta, mas graças à auto -box, você pode usar o Java como uma linguagem quase verdadeiramente OO (eu odeio ter tipos primitivos ... agora apenas se funcionasse ao contrário). No entanto, muda o comportamento quando você usa um objeto (para melhor IMO).

Não há terceiro estado.Como o @Yishai, disse, se você não atribuir um valor booleano campos padrão para false.As variáveis locais devem ser designados antes do uso:

Aceder a um local não inicializada variável irá resultar em um tempo de compilação erro

Ver o doc.

Nos tipos booleanos de Java, padrão para false.

Para sua informação, os padrões booleanos para os números falsos, primitivos, padrão para 0, 0L, 0F ou 0D, conforme apropriado, o CHAFULTS PARA ' 0', referências de objeto (como booleano) Padrão para NULL.

Isso também se aplica ao conteúdo das matrizes. (Um petcha comum é que uma variedade de objetos está inicialmente cheia de valores nulos)

Isso é falso

Se você tivesse algo como

boolean isTrue;

System.out.println(isTrue);

Você deve obter um erro de tempo de compilação porque o booleano não foi inicializado. Por padrão, ao tentar inicializar, ele será definido como false;

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top