Javaの型には基本データ型や配列、クラスがあります。
基本データ型をクラスとして扱うことができるように、基本データ型に対応したラッパークラスと呼ばれるクラスが用意されています。
ラッパークラスの種類
Javaの基本データ型は8種類あり、すべてに対応するラッパークラスがあります。ラッパークラスはjava.langに属するためimportは必要ありません。下表は基本データ型と対応するラッパークラスとなりますが、charとint以外の型は、基本データ型の頭文字を大文字にしたものです。
ラッパークラス名 | 対応する基本データ型 |
---|---|
Character | char |
Byte | byte |
Short | short |
Integer | int |
Long | long |
Float | float |
Double | double |
Boolean | boolean |
※リンクは公式サイトへ移動します
ラッパークラスの用途
ラッパークラスの用途はいくつかありますが、多くの場合「基本データ型をオブジェクトとして扱う」「基本データ型とStringとの相互変換」で利用されます。
例えば、String型から基本データ型へ変換する記述としては、「Integer.parseInt(String s)」や「Double.parseDouble(String s)」等があります。逆に、基本データ型からString型へ変換する記述としては、「Integer.toString(int i)」や「Double.toString(double d)」等があります。
オートボクシング
Java5以降からはオートボクシング機能が追加され、基本データ型は対応するラッパークラスに自動的に変換されます。
逆に、ラッパークラスから基本データ型にも自動変換が行われます(アンボクシング機能)。
記述 | |
---|---|
従来 | Integer a = new Integer(20); int b = a.intValue(); |
自動変換 | Integer a = 20; int b = a; |
基本データ型とラッパークラスの相互変換の記述が楽になりますが、Integerのインスタンスにnullが代入されている場合は実行時エラーとなりますので注意が必要です。
ラッパークラス サンプルプログラム
以下のプログラムを「Number48.java」という名前でWorkフォルダ内に保存します。
保存が完了したら、コマンドプロンプトを起動し、Number48.javaをコンパイルしてみましょう。※プログラムが長いため、必要に応じてコピペで確認してください
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
class Number48{ public static void main(String[] args){ //Stringから基本データへの変換 int a = Integer.parseInt("11"); double b = Double.parseDouble("19.8"); //基本データからStringへの変換 String c = Integer.toString(a); String d = Double.toString(b); //基本データ型から各ラッパークラスへ Integer e = 100; Double f = 100.1; //自動変換されて代入が行われる int g = new Integer(100); double h = new Double(5.7); } } |
実行例
C:\work>javac Number48.java
C:\work>java Number48
今回は何も出力されません。また、下記の部分は自動変換を確認するための記述です。(あえてラッパークラスをインスタンス生成して基本データ型に格納してもメリットはない)
1 2 |
int g = new Integer(100); double h = new Double(5.7); |
ラッパークラス 復習問題
- String型からint型へ変換する記述として正しいものを選んでください
- 解答群
- int i = Integer.toString(“100”);
- int i = Integer.intValue(“100”);
- int i = Integer.parseInt(“100”);
- int i = Integer.toInt(“100”);
- 以下のプログラムをコンパイル・実行するとどのような結果になるか選んでください
12Integer a = null;int b = a; - 解答群
- コンパイルエラー
- 実行時エラー
- aには0が代入される
- aにはnullが代入される
- char型に対応するラッパークラスとして正しいクラスを選んでください
- 解答群
- Character
- Char
- character
- CHARACTER
- お疲れ様でした。
まとめ
- 基本データ型に対応するクラスをラッパークラスと呼ぶ
- ラッパークラスを用いることで基本データ型をオブジェクトとして扱うことができる
- Stringと基本データ型への変換処理をできる
- ラッパークラスは基本データ型と相互に自動変換ができる