В объектно-ориентированном программировании , класс - оболочка представляет собой класс , который инкапсулирует типы , так что эти типы могут быть использован для создания объектов экземпляров и метод другого класса , которые нуждаются в этих типах. Таким образом, примитивный класс обертки класса обертки , который инкапсулирует, укрытия или обертки типы данных из восьми примитивных типов данных , [1] , так что они могут быть использованы для создания инстанцированы объектов с помощью методов в другом классе или в других классах. [2] [3] Примитивные классы-оболочки находятся в Java API..
0 Примитивные классы-оболочки используются для создания объектов, 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]
Следовательно, термин « примитивный класс-оболочка» не означает, что классы-оболочки являются примитивными типами. Следует понимать, что это класс, который обертывает примитивные типы. Классы-оболочки можно использовать для хранения того же значения, что и для переменной примитивного типа, но сами экземпляры / объекты классов-оболочек не являются примитивными . Нельзя сказать, что классы Wrapper сами являются примитивными типами. Они просто обертывают примитивные типы.
Byte
, Short
, Integer
, Long
, Float
, И Double
классы - оболочки все подклассы этого Number
класса.
Классы-оболочки BigDecimal
и BigInteger
не являются одними из примитивных классов-оболочек, но являются неизменяемыми. [4] [5]
Атомарные классы-оболочки [ править ]
В Java 5.0 в java.util.concurrent.atomic
пакет были добавлены дополнительные классы-оболочки . Эти классы изменяемы и не могут использоваться в качестве замены обычных классов-оболочек. Вместо этого они предоставляют атомарные операции для сложения, увеличения и присваивания.
Атомарные классы-оболочки и соответствующие им типы:
Примитивный тип Класс обертки int
AtomicInteger
long
AtomicLong
boolean
AtomicBoolean
V
AtomicReference<V>
AtomicInteger
И AtomicLong
классы являются подклассами Number
класса. AtomicReference
Класс принимает параметр типа V
, который определяет тип объекта ссылки . (См. « Обобщения в Java » для описания параметров типа в Java).V
См. Также [ править ]
- java.lang
- java.lang.reflect
- Язык программирования Java
- Синтаксис Java
- Компилятор Java
Ссылки [ править ]
- ^ SJ Chapman, Введение в Java , Prentice Hall, 1999.
- ^ a b c Дж. Мурач, Java Programming Murach , 4-е издание, Mike Murach and Associates, Inc., 2011.
- ^ JR Hubbard, Программирование с использованием Java , Outline SCHAUM в серии / McGraw Hill, 1998.
- ↑ Дэвид О'Мира (апрель 2003 г.). «Изменяемые и неизменяемые объекты: какие классы неизменяемы?» . Ранчо Ява . Проверено 14 мая 2012 .
Классы java.math.BigInteger и BigDecimal также не являются неизменяемыми, хотя, возможно, они должны были быть.
CS1 maint: обескураженный параметр ( ссылка ) - ^ Оракул. «Документация по Java от Oracle» .
Неизменяемые целые числа произвольной точности.