En la programación orientada a objetos , una clase contenedora es una clase que encapsula tipos , de modo que esos tipos se puedan usar para crear instancias de objetos y métodos en otra clase que necesite esos tipos. Por lo tanto, una clase contenedora primitiva es una clase contenedora que encapsula, oculta o envuelve tipos de datos de los ocho tipos de datos primitivos , [1] de modo que estos se puedan usar para crear objetos instanciados con métodos en otra clase o en otras clases. [2] [3] Las clases contenedoras primitivas se encuentran en la API de Java .
Las clases contenedoras primitivas se utilizan para crear un Object
que necesita representar tipos primitivos en Collection
clases (es decir, en la API de Java), en el java.util
paquete y en el paquete java.lang.reflect
de reflexión . Las clases de colección son clases definidas por la API de Java que pueden almacenar objetos de una manera similar a cómo las estructuras de datos como las matrices almacenan tipos de datos primitivos como int , double , long o char , etc., [2] pero las matrices almacenan tipos de datos primitivos mientras que las colecciones en realidad almacenan objetos.
Las clases contenedoras primitivas y sus tipos primitivos correspondientes son:
Las clases contenedoras primitivas no son lo mismo que los tipos primitivos. Mientras que las variables, por ejemplo, se pueden declarar en Java como tipos de datos double , short , int , etc., las clases contenedoras primitivas crean objetos y métodos instanciados que heredan pero ocultan los tipos de datos primitivos, no como las variables a las que se les asignan los valores de los tipos de datos. [2]
Por lo tanto, el término clase contenedora primitiva no significa que las clases contenedoras sean tipos primitivos. Debe entenderse como una clase que envuelve tipos primitivos. Las clases contenedoras se pueden usar para almacenar el mismo valor que una variable de tipo primitivo, pero las instancias/objetos de las clases contenedoras en sí mismas son no primitivas . No podemos decir que las clases contenedoras en sí mismas sean tipos primitivos. Simplemente envuelven los tipos primitivos.
Las clases contenedoras Byte
, Short
, Integer
, , y son todas Long
subclases de la clase.Float
Double
Number
Las clases contenedoras BigDecimal
y BigInteger
no son una de las clases contenedoras primitivas, pero son inmutables. [4] [5]
Con Java 5.0, se introdujeron clases contenedoras adicionales en el java.util.concurrent.atomic
paquete. Estas clases son mutables y no se pueden utilizar como reemplazo de las clases contenedoras normales. En cambio, proporcionan operaciones atómicas para la adición, el incremento y la asignación.
Las clases contenedoras atómicas y sus tipos correspondientes son:
Las clases AtomicInteger
y AtomicLong
son subclases de la Number
clase. La AtomicReference
clase acepta el parámetro de tipo V
que especifica el tipo de la referencia del objeto . (Consulte " Elementos genéricos en Java " para obtener una descripción de los parámetros de tipo en Java).V
Las clases java.math.BigInteger y BigDecimal tampoco son inmutables, aunque tal vez deberían haberlo sido.
Números enteros inmutables de precisión arbitraria.