Domanda

Anche se so che, per definizione, un valore booleano è costituito da due soli stati, vere o false. Mi chiedevo che valore ha un valore booleano disponga viene inizializzato con uno di questi stati.

È stato utile?

Soluzione

Il valore predefinito è false.

Modifica A grande richiesta:

  

a meno che non si sta utilizzando il booleana , che il default è null. - sudhir.j

Altri suggerimenti

Se si tratta di una variabile locale, si tratta di un errore di compilazione fare riferimento a esso prima di essere inizializzato. Se si tratta di un campo, viene inizializzato su false.

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);
    }
}

uscite

false
null

So che questo è stato più filosofica di una domanda, ma grazie a autoboxing è possibile utilizzare Java come linguaggio OO quasi davvero (io odio dover tipi primitivi ... ora solo se avrebbe funzionato in retromarcia troppo). Essa, tuttavia, modificare il comportamento quando si utilizza un oggetto (in meglio IMO).

Non v'è alcun terzo stato. Come ha detto @Yishai, se non si assegna un valore, campi booleani Default per falso. Le variabili locali devono essere assegnati prima dell'uso:

  

Accesso a un locale non inizializzata   variabile si tradurrà in un momento della compilazione   Errore

il doc .

In JAVA tipi booleani predefinito False.

Cordiali saluti, il default è false booleani, numeri di default primitivo a 0, 0L, 0f o 0d se del caso, di default char a '\ 0', oggetto riferimenti (come booleano) di default a null.

Questo vale anche per il contenuto di array. (A Gotcha comune è che un array di oggetti è inizialmente piena di valori nulli)

È false

Se si ha qualcosa come

boolean isTrue;

System.out.println(isTrue);

Si dovrebbe ottenere un errore di compilazione perché il booleano non è stata inizializzata. Per impostazione predefinita, quando si tenta di inizializzare questo sarà impostato su false;

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top