Javaのプリミティブラッパークラス

オブジェクト指向プログラミングにおいてラッパークラスとはをカプセル化するクラスあり、その型を用いて、その型を必要とする別のクラスでオブジェクトインスタンスメソッドを作成できるようにする。プリミティブラッパークラスとは、8つのプリミティブデータ型[1]からデータ型をカプセル化、隠蔽、またはラップするラッパークラスであり、これを用いて、別のクラスや別のクラスのメソッドを持つインスタンス化されたオブジェクトを作成できるようにする。[2] [3]プリミティブラッパークラスはJava APIに定義されている。

プリミティブラッパークラスは、クラス(Java API)、パッケージ、およびリフレクションObjectパッケージ内のプリミティブ型を表す必要がある クラスを作成するために使用されます。コレクションクラスは、配列などのデータ構造がintdoublelong 、 charなどのプリミティブデータ型を格納するのと同様の方法でオブジェクトを格納できるJava API定義のクラスです。[ 2]ただし、配列はプリミティブデータ型を格納するのに対し、コレクションは実際にはオブジェクトを格納します。Collectionjava.utiljava.lang.reflect

プリミティブ ラッパー クラスとそれに対応するプリミティブ型は次のとおりです。

プリミティブ型ラッパークラスコンストラクタ引数
byteBytebyteまたはString
shortShortshortまたはString
intIntegerintまたはString
longLonglongまたはString
floatFloatfloatdoubleまたはString
doubleDoubledoubleまたはString
charCharacterchar
booleanBooleanbooleanまたはString

ラッパークラスとプリミティブ型の違い

プリミティブラッパークラスはプリミティブ型とは異なります。例えば、Javaでは変数はdoubleshortintなどのデータ型として宣言できますが、プリミティブラッパークラスは、プリミティブデータ型を継承しつつも隠蔽するインスタンス化されたオブジェクトとメソッドを作成します。これは、データ型の値が割り当てられる変数とは異なります。[2]

したがって、 「プリミティブラッパークラス」という用語は、ラッパークラスがプリミティブ型であることを意味するものではありません。プリミティブ型をラップするクラスであると理解する必要があります。ラッパークラスはプリミティブ型の変数と同じ値を格納できますが、ラッパークラス自体のインスタンス/オブジェクトは非プリミティブ型です。ラッパークラス自体がプリミティブ型であるとは言えません。ラッパークラスは単にプリミティブ型をラップするだけです。

Byte、、、、、およびラッパー クラスShortすべてクラスサブクラスですIntegerLongFloatDoubleNumber

ラッパークラスBigDecimalとラッパークラスBigIntegerはプリミティブラッパークラスではありませんが、不変です。[4] [5]

アトミックラッパークラス

Java 5.0では、パッケージに追加のラッパークラスが導入されました。これらのクラスは可変であり、通常のラッパークラスの代わりとして使用することはできません。代わりに、加算、インクリメント、代入といったアトミックな操作java.util.concurrent.atomicを提供します

アトミック ラッパー クラスとそれに対応する型は次のとおりです。

プリミティブ型ラッパークラス
intAtomicInteger
longAtomicLong
booleanAtomicBoolean
VAtomicReference<V>

クラスAtomicIntegerAtomicLongクラスはクラスのサブクラスですNumber。クラスは、オブジェクト参照の型を指定する型パラメータAtomicReferenceを受け入れます。(Javaにおける型パラメータの説明については、 「 Javaにおけるジェネリック」を参照してください。) V

参照

参考文献

  1. ^ SJ Chapman、「Java入門」、Prentice Hall、1999年。
  2. ^ abc J. Murach、「Murach's Java Programming」、第 4 版、Mike Murach and Associates、Inc.、2011 年。
  3. ^ JR Hubbard、『Programming with Java』、Schaum's Outline Series/McGraw Hill、1998 年。
  4. ^ David O'Meara (2003年4月). 「可変オブジェクトと不変オブジェクト:どのクラスが不変か?」. Java Ranch . 2012年5月14日閲覧。java.math.BigIntegerクラスとBigDecimalクラスも不変ではないが、本来は不変であるべきだったのかもしれない。
  5. ^ Oracle. 「OracleのJavaドキュメント」。不変の任意精度整数。
Retrieved from "https://en.wikipedia.org/w/index.php?title=Primitive_wrapper_class_in_Java&oldid=1300387650"