ラッパークラス

Javaにおけるデータ型と例外処理

Jim White

Java Developer

Java の 8 つのプリミティブ

8 つの Java プリミティブは、すべてのデータの基本型です。

Javaにおけるデータ型と例外処理

ラッパークラス

  • 各プリミティブ型には対応するラッパークラスがある
primitive Wrapper Class
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

ラッパークラスにより、プリミティブをオブジェクトのように扱える。ラッパークラスは Object のサブクラス。

Javaにおけるデータ型と例外処理

プリミティブのラップ

  • ラッパークラスのインスタンスは単一のプリミティブを保持
    • 例: Integer は1つの int 値を保持

ラッパーオブジェクトは値としてプリミティブを含む

Javaにおけるデータ型と例外処理

ラッパーの詳細

  • ラッパークラスには追加のフィールドとメソッドがある
    • 型の情報(最大値など)
    • 包装されたプリミティブを扱うメソッド
  • ラッパークラスは標準ライブラリに含まれる
    • import なしで使用(import は後述)
Javaにおけるデータ型と例外処理

ラッパーオブジェクトの作成

  • プリミティブを対応するラッパー型の変数に代入
    • 構文: Wrapper-type variable = primitive-value;
Integer age = 12;
Double cost = 150250.55;
Float interest = 5.5f;
Character grade = 'A';
Boolean isActive = true;
  • ラッパーオブジェクトは値なし(null)も可
Integer age = null;
Javaにおけるデータ型と例外処理

ラッパーオブジェクトの利用

Integer age = 12;
  • 出力する
    System.out.println(age);    // 12 を表示
    
  • プリミティブ値を取得
    int x = age.intValue();     // x に 12 が代入
    
  • 他の操作を実行
    double z = age.doubleValue();  // z は 12.0
    String y = age.toString();  // y は "12"
    Integer teenAge = 16;
    int smaller = age.compareTo(teenAge);  // 12 < 16 のため smaller は -1
    
Javaにおけるデータ型と例外処理

ラッパーの静的メソッド

  • ラッパークラスには静的メソッドがある
  • 対応するプリミティブへの操作に使用
    int x = Integer.sum(8,12);  // x は 20
    int y = Integer.remainderUnsigned(102, 10);  // y は 2
    
  • String とプリミティブの相互変換に使用
    int z = Integer.parseInt("123");   // z は 123
    boolean ans = Boolean.parseBoolean("false");  // ans は false
    
1 Integer ラッパーの詳細: https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html
Javaにおけるデータ型と例外処理

ラッパーの静的フィールド

ラッパークラスの静的フィールド例

System.out.println(Integer.MAX_VALUE); // int の最大値
System.out.println(Integer.MIN_VALUE); // int の最小値
2147483647
-2147483648
System.out.println(Boolean.TRUE); // プリミティブ true に対応
System.out.println(Boolean.FALSE); // プリミティブ false に対応
true
false
Javaにおけるデータ型と例外処理

ラッパーの静的フィールド

ラッパークラスの静的フィールド例

System.out.println(Character.SPACE_SEPARATOR);  // 通常の空白 ' ' の Unicode
System.out.println(Character.LINE_SEPARATOR); // 改行 '\n' の Unicode
12
13
Javaにおけるデータ型と例外処理

便利なラッパーメソッド

ラッパーメソッド 戻り値
Boolean.logicalAnd(boolean a, boolean b) boolean
Boolean.logicalOr(boolean a, boolean b) boolean
Boolean.parseBoolean(String s) boolean
Character.getNumericValue(char ch) その文字の Unicode 整数値
Character.isDigit(char ch) boolean
Character.isLowerCase(char ch) boolean
Character.isWhitespace(char ch) boolean
Double.parseDouble(String s) double
Double.longValue() Double 値を切り捨てた Long
Javaにおけるデータ型と例外処理

なぜラッパーか

  • プリミティブにメソッドはない(演算のみ)
    • ラッパークラスには有用なメソッドがある
      int score = Integer.parseInt("8");
      
  • ラッパーでプリミティブをオブジェクトとして扱える。コレクションに入れられる
    • コレクションは第2章で学習
Javaにおけるデータ型と例外処理

ラッパーは null になり得る

  • ラッパーならインスタンス/静的変数を null にできる
    • プリミティブのインスタンス/静的変数は未初期化時にデフォルト値
int herAge; // 未初期化だと 0
Integer hisAge = null;
if (hisAge != null) {
  // hisAge が未設定でない場合の処理
}
Javaにおけるデータ型と例外処理

Ayo berlatih!

Javaにおけるデータ型と例外処理

Preparing Video For Download...