ラッパークラスを使うと、基本データ型の値をラップ(=包み込む)してオブジェクトとして利用できるようになる。
このページではラッパークラスによるオブジェクトの作成や値の設定・取得といった基本的な使い方をまとめてご紹介した。
ラッパークラスをはじめて使うという方は参考にしてほしい。
オブジェクトの作成と値の設定・取得
オブジェクトの生成と値の設定・取得を、int型のラッパークラスであるIntegerクラスを例に見ていこう。
オブジェクトの生成
基本データ型の値に対して様々な操作を行うには、まず基本データ型の値を持つラッパークラスのオブジェクトを生成する必要がある。
Integerクラスでは次のように二通りの方法がある。
new Integer(int num )
new Integer(String str )
※オブジェクトの生成はnew演算子を使う。どのような型を引数として渡せるかは使いたいクラスのAPIで「コンストラクタの概要」を見ると記載してあるので参考にしてほしい。
値の設定
値の設定には、生成したオブジェクトを代入する方法と、IntegerクラスのvalueOfメソッドを利用する方法がある。
Integer intNum = Integerオブジェクト
Integer intNum = Integer .valueOf(int num)
Integer intNum = Integer .valueOf (String str)
値の取得
値の取得はラッパークラスのメソッドを使用して行う。例としてInteger型変数の値を int型として返すintValue()メソッドを見てみよう。
書き方はこうだ。
Integer型変数.intValue();
サンプルコード
サンプルコードは次の通りだ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public class JavaApp1 { public static void main(String[] args) { int num = 1000; String strNum = "2000"; Integer iNum1 = new Integer(num);//[1] Integer iNum2 = Integer.valueOf(strNum);//[2] System.out.println("iNum1の値:" + iNum1.toString());//[3] System.out.println("iNum2の値:" +iNum2.toString());//[4] System.out.println("iNum1の値とiNum2の値が等しいか:" +iNum1.equals(iNum2));//[5] int i = iNum1.intValue();//[6] System.out.println("iの値:" + i );//[7] } } |
実行結果
1 2 3 |
iNum1の値:1000 iNum2の値:2000 iNum1の値とiNum2の値が等しいか:false |
iの値:1000サンプルコードの説明
- [1] 1000で初期化されたint型の変数numを引数に渡してInteger型オブジェクトiNum1を生成。
- [2] 文字列”2000”で初期化されたString型の変数strNumを引数に渡してIntegerクラスのValueOfメソッドにてInteger型オブジェクトiNum2を生成。
- [3] 変数iNum1の値を表示。
- [4] 変数iNum2の値を表示。
- [5] 変数iNum1とiNum2の値が等しいかどうかの比較をIntegerクラスのequalsメソッドを利用して行い結果を表示。
- [6]Integer型のオブジェクトiNum1の値を取得し、int型変数iへ代入。
- [7]変数iの値を表示。
Boolean型の場合
Boolean型の場合、文字列からValueOfメソッドを使用してオブジェクトを生成する際、大文字、小文字に関係なくオブジェクトが生成される。
”true” ”false”以外の文字列だった場合、エラーは発生せずすべてfalseのBooleanオブジェクトが生成される。
サンプルコードで確認しよう。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public class JavaApp2 { public static void main(String[] args) { boolean bool = true; String strBool = "TRUE"; String strBool2= "TRUUUUUE"; Boolean bool1 = new Boolean(bool);//[1] Boolean bool2 = Boolean.valueOf(strBool);//[2] Boolean bool3 = Boolean.valueOf(strBool2);//[3] System.out.println("bool1の値を文字列として出力:" + bool1.toString());//[4] System.out.println("bool2の値を文字列として出力:" +bool2.toString());//[5] System.out.println("bool1とbool2が等しいか:" +bool1.equals(bool2));//[6] System.out.println("bool3:" +bool3.toString());//[7] } } |
実行結果
1 2 3 4 |
bool1の値を文字列として出力:true bool2の値を文字列として出力:true bool1とbool2が等しいか:true bool3:false |
サンプルコードの説明
- [1] trueで初期化されたboolean型の変数boolを引数に渡してBoolean型オブジェクトbool1を生成。
- [2] 文字列”TRUE”で初期化されたString型の変数strBoolを引数に渡してBooleanクラスのValueOfメソッドを利用してBoolean型オブジェクトbool2を生成。※BooleanクラスのValueOfメソッドを使用する際、大文字、小文字は気にせず代入してよい。”TrUe”でも”True”でもtrueとしてオブジェクトが生成される。
- [3] 文字列” TRUUUUUE”で初期化されたString型の変数strBool2を引数に渡してBooleanクラスのValueOfメソッドを利用してBoolean型オブジェクトbool3を生成。
- [4] 変数bool1の値を表示。
- [5] 変数bool2の値を表示。
- [6] 変数bool1とbool2の値が等しいかどうかの比較をBooleanクラスのequalsメソッドを利用して行い結果を表示。
- [7] 変数bool3の値を表示。
まとめ
このページではJavaラッパークラスの基本をお伝えした。オブジェクトの作成と値の設定・値の取得方法は概ね理解できただろうか? ぜひ参考にしてほしい。
ラッパークラスの詳細については下記ページも参考に。
コメント