ココでわかるAndroidアプリ開発

あなたのプログラミングを徹底サポート

【Java】ラッパークラスとは - 使い方やボクシング機能について解説

  • 作成日:2022/02/09

Javaのラッパークラスについて解説します。

ラッパークラスとは

ラッパークラスとは基本データ型にメソッドを付与した参照型のクラスです。

int型やboolean型などの基本データ型はデータのみもち、データを別の型に変換したり、サイズを取得したりといったデータの操作はできません。

しかし、int型の変数にも型の変換やサイズ取得が必要な場面もあるでしょう。そこで登場するのがラッパークラスです。 基本データ型に対応したラッパークラスが用意されていて、これを使えばメソッドを用いてデータ操作が可能となります。

基本データ型 ラッパークラス
boolean Boolean
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double

参照型なので先頭文字が大文字になっていますね。

使い方

ラッパークラスの使い方を解説します。

値の設定

まずは値の設定方法です。Integer型を例にすると、以下のような方法があります。7行目と9行目に注目してください。

App.java

public class App {

    public static void main(String[] args) {


        Integer tmp= new Integer(5);//非推奨

        Integer tmp2= Integer.valueOf(5);

    }
}

どちらもInteger型の変数に「5」という値を設定しています。 7行目はよく使うnew演算子を用いたインスタンスの生成方法ですが、こちらは現在非推奨なので使わないほうが良いでしょう。

9行目はvalueOfメソッドを用いた設定で、引数に渡した数値をtmp2変数に代入しています。 数値をInteger型に変換しているともいえます。

補足

厳密にいうと、tmp2は参照型の変数なので、tmp2に格納されるのはアドレスです。

その他のラッパークラスにもvalueOfメソッドがあります。

App.java

public class App {

    public static void main(String[] args) {

        //Integer型
        Integer tmp1= Integer.valueOf(5);

        //Boolean型
        Boolean tmp2= Boolean.valueOf("true");

        //Byte型
        Byte b=1;
        Byte tmp3= Byte.valueOf(b);

        //Character型
        Character tmp4= Character.valueOf('a');

        //Short型
        short s=123;
        Short tmp5 = Short.valueOf(s);

        //Long型
        Long tmp6 = Long.valueOf(100);

        //Float型
        float f=1.23f;
        Float tmp7 = Float.valueOf(f);

        //Double型
        Double tmp8 = Double.valueOf(4.23);
    }
}

これはvalueOfメソッドの使い方の1例です。他にも、引数を文字列にしたりできます。

値の取得

ラッパークラスの値の取得方法を解説します。Integer型を例にすると、以下のような方法があります。7行目と10行目に注目してください。

App.java

public class App {

    public static void main(String[] args) {

        //値の設定
        Integer tmp1= Integer.valueOf(5);

        //値の取得
        int i=tmp1.intValue();

    }
}

まず7行目でtmp1に「5」という値を設定しています。 10行目でtmp1に設定した値を取得しています。値の取得してint型に代入する場合はintValueメソッドを使います。 Integer型の値をint型に変換しているともいえます。

long型変数に代入したい場合は、longValueメソッドを、double型変数に代入したい場合はdoubleValueメソッドを使うなど、 型に応じて使い分けましょう。

ボクシング機能

ボクシング機能とは、基本データ型とラッパークラスの変換を自動で行ってくれる機能です。 これにより、メソッドを使わずに簡単な記述で値を設定・取得できます。

基本データ型からラッパークラスへの変換をオートボクシングといいます。

App.java

public class App {

    public static void main(String[] args) {

        //オートボクシングなし
         Integer tmp1= Integer.valueOf(5);
         
        //オートボクシング
         Integer tmp2=5;

    }
}

逆に、ラッパークラスから基本データ型への変換をアンボクシングといいます。

App.java

public class App {

    public static void main(String[] args) {

        //値の設定
         Integer tmp=5;
         
         //アンボクシングなし
          int i=tmp.intValue();
          
         //アンボクシングあり
         int j=tmp;

    }
}

このように、基本データ型に対応したラッパークラスへの変換はメソッドを使わずに済みます。

この記事のシェアはこちらから

カテゴリー

カテゴリーの一覧です。

Contact

当サイトへのご連絡は以下よりお願いします。

© Copyright 2022 ココでわかるAndroidアプリ開発