何かをboolean state java?
質問
が知っていることにより定義boolean値のみを使用した二つの国家が、trueまたはfalseです。のかと思ってな取り組みにどのような価値をbooleanて前で初期化されます。
解決
他のヒント
それはローカル変数である場合は、
、初期化された前に、それを参照するようにコンパイラエラーです。それはフィールドがある場合、それは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);
}
}
出力
false
null
私がこの質問の哲学的、しかし、あなたは(私はそれがあまりにも逆に働くだろう場合にのみ、今...プリミティブ型を持つ嫌い)、ほぼ真にオブジェクト指向言語としてのJavaを使用することができますオートボクシングのおかげでした知っています。あなたは(より良いIMOのための)オブジェクトを使用する場合には、しかし、行動を変えるん。
ありません第三の状態です。として@Yishaiれない場合に割り当てる値をboolean分野でのデフォルト値はfalseです。局所変数を属ご使用の前に:
アクセスし、初期化されていない地域 変数の結果をコンパイル時の エラー
見 のdocフレーバ.
FalseにJAVAブール型のデフォルトでます。
FYI、 '\ 0' に該当する、文字のデフォルト値として0、0L、0Fまたは0Dに虚偽の、原始的数字のデフォルトのブール値デフォルト値は、NULLにデフォルト(ブールなど)の参照オブジェクトます。
これはまた、配列の内容に適用されます。 (一般的な落とし穴は、オブジェクトの配列がnull値の最初に満杯であることである)
であ false
は、
のようなものを持っていた場合boolean isTrue;
System.out.println(isTrue);
ブール値が初期化されなかったため、あなたは、コンパイル時エラーを取得する必要があります。デフォルトでは、それがfalseに設定され、これを初期化しようとすると、
所属していません StackOverflow