包装
Java言語はオブジェクト指向言語ですが、Javaの基本的なデータ型はオブジェクト指向ではないため、実際に使用する際には不便が多くなります。
この欠点を解決するために、クラス設計時に表現する基本データ型ごとに対応するクラスが設計されるため、基本データ型に対応する8つのクラスを総称してラッパークラス(Wrapper Class)と呼び、場合によってはカプセル化クラスやデータ型クラスと訳すこともあります。
ラッパー クラスはjava.langパッケージにあります。
ラッパークラスと基本データ型の対応関係を表に示します。
基本的なデータ型 |
包装 |
施工方法 |
ブール値 |
ブール値 |
Boolean ( boolean b ) またはBoolean(String s) |
バイト |
バイト |
バイト(バイトb)またはバイト(文字列s) |
文字 |
キャラクター |
文字(char c) |
短い |
短い |
Short(short s)またはShort(String s) |
整数 |
整数 |
Integer( int i )またはInteger(String s) |
長さ |
長さ |
Long(long l)またはLong(String s) |
浮く |
浮く |
Float(double d)またはFloat(float f)またはFloat(String s) |
ダブル |
ダブル |
Double(double d)またはDouble(String s) |
さらに、対応する基本型がなく、主に高精度演算に使用される 2 つのラッパー クラス BigInteger と BigDecimal があり、BigInteger は任意の精度の整数をサポートし、BigDecimal は任意の精度と小数点の演算をサポートします。
ラッパークラスの機能
ラッパークラスは参照データ型に属し、属性とメソッドを持っています。これらのメソッドを利用することで、基本データ型にはない多くの機能を実現できます。ラッパークラスは主に、(1) 基本データ型をラップした後、オブジェクトとして利用できるようにする、(2) 値から文字列への変換、文字列から値への変換など、基本データ型に対するさまざまな変換関数を提供する機能を強化します。
ArrayList や HashMapなど の一部のデータ構造は元の値の型を格納できず、現時点ではそのラッパー クラスのみを使用できます。
基本データ型とそのラッパー クラス間の変換 ( Integerクラスを例にします)
(1)基本型をパッケージ型に変換します。Integer I=new Integer(プリミティブ値);
(2)ラッパー型は基本型int a= I.intValue ()に変換されます。
基本タイプとパッケージ化タイプの主な類似点と相違点は次のとおりです。
1. Javaではすべてがオブジェクトですが、8 つの基本タイプはオブジェクトではありません。
2. 異なる宣言方法では、基本タイプはnewキーワードを使用して作成する必要はありませんが、パッケージ タイプにはnewキーワードが必要です。
3. 格納方法と格納場所が異なりますが、変数の値を直接格納してスタックに格納することで効率的にアクセスするのが基本型ですが、カプセル化型は参照でインスタンスを指す必要があり、特定のインスタンスをヒープに格納するタイプです。
4. 初期値が異なります。カプセル化型の初期値はnull で、基本型の初期値は特定の型に依存します。たとえば、int型の初期値は0 、boolean型はfalseです。
5. コレクションクラスと連携してパッケージングタイプのみを使用するなど、さまざまな使用方法が可能です。