オブジェクト指向プログラミングにおいて、ラッパークラスは型をカプセル化するクラスであり、それらの型を使用して、それらの型を必要とする別のクラスでオブジェクトインスタンスやメソッドを作成できます。したがって、プリミティブラッパークラスは、 8つのプリミティブデータ型からデータ型をカプセル化、非表示、またはラップするラッパークラスであり、[1]これらを使用して、別のクラスまたは他のクラスのメソッドを持つインスタンス化されたオブジェクトを作成できます。[2] [3]プリミティブラッパークラスはJava APIにあります。
プリミティブ ラッパー クラスは、クラス (つまり、Java API)、パッケージ、およびリフレクションパッケージでObjectプリミティブ型を表す必要があるを 作成するために使用されます。コレクション クラスは、配列などのデータ構造がint、double、long、charなどのプリミティブ データ型を格納するのと同様の方法でオブジェクトを格納できる Java API 定義のクラスです[2]。ただし、配列はプリミティブ データ型を格納し、コレクションは実際にはオブジェクトを格納します。
Collectionjava.utiljava.lang.reflect
プリミティブ ラッパー クラスとそれに対応するプリミティブ型は次のとおりです。
ラッパークラスとプリミティブ型の違い
プリミティブラッパークラスはプリミティブ型と同じものではありません。たとえば、変数はJavaでdouble、short、intなどのデータ型として宣言できますが、プリミティブラッパークラスは、データ型の値が割り当てられる変数とは異なり、プリミティブデータ型を継承して非表示にするインスタンス化されたオブジェクトとメソッドを作成します。[2]
したがって、プリミティブ ラッパー クラスという用語は、ラッパー クラスがプリミティブ型であることを意味するものではありません。プリミティブ型をラップするクラスであると理解する必要があります。ラッパー クラスは、プリミティブ型の変数と同じ値を格納するために使用できますが、ラッパー クラス自体は非プリミティブです。ラッパー クラス自体がプリミティブ型であるとは言えません。プリミティブ型をラップするだけです。
Byte、、、、、およびラッパー クラスはShortすべてクラス
のサブクラスです。IntegerLongFloatDoubleNumber
ラッパークラスBigDecimalとBigInteger クラスはプリミティブラッパークラスではありませんが、不変です。[4]
[5]
アトミックラッパークラス
Java 5.0 では、パッケージに追加のラッパー クラスが導入されました。これらのクラスは変更可能であり、通常のラッパー クラスの代わりとして使用することはできません。代わりに、追加、増分、および割り当てのアトミック操作をjava.util.concurrent.atomic提供します。
アトミック ラッパー クラスとそれに対応する型は次のとおりです。
クラスAtomicIntegerとAtomicLongクラスは クラスのサブクラスですNumber。クラスは、オブジェクト参照の型を指定する型パラメータAtomicReferenceを受け入れます。( Java の型パラメータの説明については、
「 Java のジェネリック」を参照してください)。 VV
参照
参考文献
- ^ SJ Chapman、「Java入門」、Prentice Hall、1999年。
- ^ abc J. Murach、「Murach's Java Programming」、第 4 版、Mike Murach and Associates、Inc.、2011 年。
- ^ JR Hubbard、『Java によるプログラミング』、Schaum's Outline Series/McGraw Hill、1998 年。
- ^ David O'Meara (2003 年 4 月)。「可変オブジェクトと不変オブジェクト: どのクラスが不変か?」Java Ranch。2012年 5 月 14 日閲覧。java.math.BigInteger
クラスと BigDecimal クラスも不変ではありませんが、不変であるべきだったかもしれません。
- ^ Oracle。「Oracle の Java ドキュメント」。
不変の任意精度整数。
