JavaのBooleanクラスとは?主なフィールド・メソッドと使い方を実例付きで解説
JavaのBooleanクラスとは
Booleanクラスは、プリミティブ型booleanの値をオブジェクトとしてラップするラッパークラスです。Boolean型のオブジェクトには、boolean型の値を1つだけ保持するフィールドが含まれています。
コレクションやジェネリクスのようにオブジェクトが必須となる場面で真偽値を扱いたいとき、このクラスが役立ちます。
Booleanクラスの主なフィールド
- static Boolean FALSE − プリミティブ値
falseに対応するBooleanオブジェクトです。 - static Boolean TRUE − プリミティブ値
trueに対応するBooleanオブジェクトです。 - static Class<Boolean> TYPE − プリミティブ型
booleanを表すClassオブジェクトです。
Booleanクラスの主なメソッド
| No. | メソッドと説明 |
|---|---|
| 1 | boolean booleanValue()このBooleanオブジェクトの値を、booleanプリミティブとして返します。 |
| 2 | int compareTo(Boolean b)このBooleanインスタンスを別のインスタンスと比較します。 |
| 3 | boolean equals(Object obj)引数がnullではなく、かつこのオブジェクトと同じboolean値を表すBooleanオブジェクトである場合にのみ、trueを返します。 |
| 4 | static boolean getBoolean(String name)引数で指定した名前のシステムプロパティが存在し、その値が文字列"true"と等しい場合にのみ、trueを返します。 |
| 5 | int hashCode()このBooleanオブジェクトのハッシュコードを返します。 |
| 6 | static boolean parseBoolean(String s)文字列引数をbooleanとして解析(パース)します。"true"(大文字・小文字は区別しない)以外の文字列はすべてfalseになります。 |
| 7 | String toString()このBooleanの値を表すStringオブジェクトを返します。 |
それでは、実際のコード例を見てみましょう。
例1:equals()メソッドによる比較
import java.lang.*;
public class Demo {
public static void main(String[] args){
Boolean val1, val2;
val1 = new Boolean(true);
val2 = new Boolean(true);
boolean res = val1.equals(val2);
System.out.println("Are both the Boolean values equal? = " + res);
}
}
実行結果
Are both the Boolean values equal? = true
同じ値 true を持つ2つのBooleanオブジェクトを equals() で比較すると、trueが返されます。
例2:hashCode()との組み合わせ
import java.lang.*;
public class Demo {
public static void main(String[] args){
Boolean val1, val2;
val1 = new Boolean(false);
val2 = new Boolean(true);
System.out.println("Value1 = " + val1);
System.out.println("Value2 = " + val2);
System.out.println("HashCode Value1 = " + val1.hashCode());
System.out.println("HashCode Value2 = " + val2.hashCode());
boolean res = val1.equals(val2);
System.out.println("Are both the Boolean values equal? = " + res);
}
}
実行結果
Value1 = false Value2 = true HashCode Value1 = 1237 HashCode Value2 = 1231 Are both the Boolean values equal? = false
値が異なるため equals() の結果はfalseとなり、それぞれ異なるハッシュコード(falseは1237、trueは1231)が返されていることがわかります。
補足:new Boolean()の代わりにvalueOf()を使う
なお、new Boolean(true) のようなコンストラクタ呼び出しは、Java 9以降では非推奨(deprecated)となっています。代わりに Boolean.valueOf(true) を使用することで、TRUE/FALSEの定数オブジェクトが再利用され、より効率的かつ安全にBooleanオブジェクトを生成できます。
-
Javaのsuperキーワードとは?使い方とサンプルコードを徹底解説
JavaのsuperキーワードとはJavaにおけるsuperキーワードは、サブクラスから直接の親クラス(スーパークラス)のメンバーやコンストラクタへアクセスするために使われる重要なキーワードです。主な役割は以下の3つです。親クラスのインスタンス参照:super変数は、直近の親クラスのインスタンスを参照します。親クラスのメソッド呼び出し:superを使うことで、オーバーライドされた親クラスのメソッドを呼び出せます。親クラスのコンストラクタ呼び出し:super()は親クラスのコンストラクタとして機能し、子クラスのコンストラクタ内では必ず最初の行に記述する必要があります。特に、オーバーライドされたメ
-
Javaの集約(Aggregation)とは?HAS-A関係の基本をわかりやすく解説
Javaにおける集約(Aggregation)とは、オブジェクト指向プログラミングにおける「HAS-A関係」を表す概念です。あるクラスが、別のクラスのオブジェクトを「持っている(has-a)」という関係性を指します。まずは具体的な例を見てみましょう。集約のコード例public class Vehicle{} public class Speed{} public class Van extends Vehicle { private Speed sp; }この例では、VanクラスがSpeedクラスのインスタンスをフィールドとして保持しています。つまり、「VanはSpeedを持っている(