ラッパークラス

ラッパークラスとは「包み込み」という意味を持つクラスです。
基本データ型はオブジェクトでない為オブジェクトとして扱うことができません。
ラッパークラスとはこれら基本データ型を包み込んで管理するために用意されたクラスです。

これにより基本データ型をオブジェクトとして扱うことが可能になります。
またそのオブジェクトのメソッドを使用して様々な操作をすることができます。

ラッパークラスの種類

プリミティブ型
ラッパークラス
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double
char
Character
boolean
Boolean

基本的にラッパークラスの仕組みはどれもよく似ていますので、
ここではIntegerクラスについて見ていきます。

Integerクラス

Integerクラスはint型を管理するラッパークラスです。

このクラスはIntegerクラスのstaticメソッドであるperseIntメソッドを使用して
String型のデータをInt型のデータに変換することができます。

またtoStringメソッドを使用すると、そのオブジェクトの中で管理している
Int型のデータをString型に変換もできます。
そのほかにそのオブジェクトで管理しているデータを取得したい場合はメソッドとして
intValueがあります。 では、まず簡単なサンプルプログラムを見ていきます

サンプルプログラム(Sample76.java)

class Sample76{
    public static void main(String args[]){
   String str1 = new String("10");
   String str2 = new String("20");

   System.out.println("str1 + str2 = " + (str1 + str2));

   //String型の str1 と str2 をint型に変換
  int i = Integer.parseInt(str1);
   int j = Integer.parseInt(str2);

  System.out.println("int i + int j = " + (i + j));

    }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

スクール・通信講座の徹底比較!一括資料請求【無料】
☆ゲーム用パソコンならドスパラ!☆
36年の実績,利用企業6,000社,受講者総数200万人突破。
技術系の通信教育講座ならJTEX!


コンパイル・実行してみます。

ここでは、まずString型のオブジェクトを2つ作成しています。
そのオブジェクトの引数に10 と 20 が渡されています。

ここで注意してもらいたいのはあくまでもこの10と20は文字列です。

String型の文字列10 と 20です(" ")で囲まれている点に注意してください。
したがって str1 + str2 は 10 と 20 の加算演算子ではなくただの文字列の連結になり、
出力結果として1020になります。

そのString型の文字列をint型に変換しているのがこの部分になります。

int i = Integer.parseInt(str1);,
int j = Integer.parseInt(str2);

IntegerクラスのperseInt()メソッドを使用しています。
引数にString型の参照変数を指定してやることでString型のstr1 str2 をint型に変換しています。
したがって int i + int j はint型の加算演算子になり出力結果は30になります。

では、もうひとつサンプルプログラムを見ていきます。

サンプルプログラム(Sample76_1.java)

class Sample76_1{
    public static void main(String args[]){
 String str1 = new String("1020sanju");

//String型の str1  をint型に変換
   int i = Integer.parseInt(str1);
   System.out.println("int i = " + i);
  
    }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます。

上記のサンプルプログラムはコンパイルはできましたが実行時に例外が出ました。

今回はString型の引数に1020sanjuです。

しかし、sanjuは整数値に変換できません。

あくまでも文字列に変換できるのは整数値に変換できる値だけなのです。
このような場合は例外NumberFormatExceptionという例外が送出されます。

もうひとつラッパークラスで代表的なメソッドを紹介します。
それは対応するデータ型のデータの扱うことができる範囲を表すことが定数として、
最小値用のMIN_VALUEや最大値用のMAX_VALUEがあります。

サンプルプログラム(Sample76_2.java)

class Sample76_2{
    public static void main(String args[]){
   System.out.println("int型の有効範囲の最大値は " + Integer.MAX_VALUE);
   System.out.println("int型の有効範囲の最小値は " + Integer.MIN_VALUE);
    }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます。

このような結果になりました。
基本データ型の値の範囲を思い出してください。
int型の値の範囲は-2147483648〜2147483647でしたよね。
そうですラッパークラスのMAX_VALUEとMIN_VALUEを使うことで
基本データ型の 有効範囲を表示することができるのです。

ページのトップへ戻る