Примитивный класс-оболочка в Java
В объектно-ориентированном программировании класс -оболочка — это класс , который инкапсулирует типы , чтобы эти типы можно было использовать для создания объектов экземпляров и методов в другом классе, которому нужны эти типы. Таким образом, примитивный класс-оболочка — это класс-оболочка, который инкапсулирует, скрывает или оборачивает типы данных из восьми примитивных типов данных . [ 1 ] так что их можно использовать для создания экземпляров объектов с методами в другом классе или в других классах. [ 2 ] [ 3 ] Примитивные классы-оболочки находятся в Java API .
Примитивные классы-оболочки используются для создания Object
который должен представлять примитивные типы в Collection
классы (т. е. в Java API), в java.util
упаковке и в java.lang.reflect
пакет отражения . Классы коллекций — это классы, определенные Java API, которые могут хранить объекты аналогично тому, как структуры данных, такие как массивы, хранят примитивные типы данных, такие как int , double , long или char и т. д. [ 2 ] но массивы хранят примитивные типы данных, а коллекции фактически хранят объекты.
Примитивные классы-оболочки и соответствующие им примитивные типы:
Примитивный тип Класс-оболочка Аргументы конструктора byte
Byte
byte
илиString
short
Short
short
илиString
int
Integer
int
илиString
long
Long
long
илиString
float
Float
float
,double
илиString
double
Double
double
илиString
char
Character
char
boolean
Boolean
boolean
илиString
Разница между классами-оболочками и примитивными типами
[ редактировать ]Примитивные классы-оболочки — это не то же самое, что примитивные типы. В то время как переменные, например, могут быть объявлены в Java как типы данных double , short , int и т. д., примитивные классы-оболочки создают экземпляры объектов и методов, которые наследуют, но скрывают примитивные типы данных, в отличие от переменных, которым присвоен тип данных. ценности. [ 2 ]
Следовательно, термин примитивный класс-оболочка не означает, что классы-оболочки являются примитивными типами. Следует понимать, что это класс, который является оболочкой примитивных типов. Классы-оболочки могут использоваться для хранения того же значения, что и переменная примитивного типа, но сами экземпляры/объекты классов-оболочек являются Non-Primitive . Мы не можем сказать, что классы-обертки сами по себе являются примитивными типами. Они просто оборачивают примитивные типы.
The Byte
, Short
, Integer
, Long
, Float
, и Double
являются подклассами все классы- оболочки Number
сорт.
Классы-оболочки BigDecimal
и BigInteger
не являются одним из примитивных классов-оболочек, но являются неизменяемыми. [ 4 ]
[ 5 ]
Атомарные классы-оболочки
[ редактировать ]В Java 5.0 в Java 5.0 были введены дополнительные классы-оболочки. java.util.concurrent.atomic
упаковка. Эти классы являются изменяемыми и не могут использоваться в качестве замены обычных классов-оболочек. Вместо этого они предоставляют атомарные операции для сложения, приращения и присваивания.
Атомарные классы-оболочки и соответствующие им типы:
Примитивный тип Класс-оболочка int
AtomicInteger
long
AtomicLong
boolean
AtomicBoolean
V
AtomicReference<V>
The AtomicInteger
и AtomicLong
классы являются подклассами Number
сорт. AtomicReference
класс принимает параметр типа V
который определяет тип ссылки на объект . ( см. в разделе « Обобщенные шаблоны в Java Описание параметров типа в Java »).
V
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ С. Дж. Чепмен, Введение в Java , Prentice Hall, 1999.
- ^ Jump up to: а б с Дж. Мурак, Программирование на Java Мураха , 4-е издание, Mike Murach and Associates, Inc., 2011.
- ^ Дж. Р. Хаббард, Программирование на Java , серия обзоров Шаума / McGraw Hill, 1998.
- ^ Дэвид О'Мира (апрель 2003 г.). «Изменяемые и неизменяемые объекты: какие классы являются неизменяемыми?» . Яванское ранчо . Проверено 14 мая 2012 г.
Классы java.math.BigInteger и BigDecimal также не являются неизменяемыми, хотя, возможно, так и должно было быть.
- ^ Оракул. «Java-документация от Oracle» .
Неизменяемые целые числа произвольной точности.