En la programación orientada a objetos , una clase contenedora es una clase que encapsula tipos , de modo que esos tipos se pueden usar para crear instancias de objetos y métodos en otra clase que los necesite. Entonces, una clase contenedora primitiva es una clase contenedora que encapsula, oculta o envuelve tipos de datos de los ocho tipos de datos primitivos , [1] para que estos puedan usarse 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..
0 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 de java.lang.reflect
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 almacenar objetos.
Las clases de envoltura primitiva y sus correspondientes tipos primitivos son:
La diferencia entre clases contenedoras y tipos primitivos
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 asigna el tipo de datos. valores. [2]
Por lo tanto, el término clase contenedora primitiva no significa que las clases contenedoras sean tipos primitivos. Debe entenderse que es una clase que envuelve tipos primitivos. Las clases contenedoras se pueden usar para almacenar el mismo valor que el de una variable de tipo primitivo, pero las instancias / objetos de las clases contenedoras son no primitivas . No podemos decir que las clases Wrapper en sí mismas sean tipos primitivos. Simplemente envuelven los tipos primitivos.
El Byte
, Short
, Integer
, Long
, Float
, y Double
clases de envoltura son todas las subclases de la Number
clase.
Las clases contenedoras BigDecimal
y BigInteger
no son una de las clases contenedoras primitivas, pero son inmutables. [4] [5]
Clases de envoltura atómica
Con Java 5.0, se introdujeron clases contenedoras adicionales en el java.util.concurrent.atomic
paquete. Estas clases son mutables y no se pueden usar como reemplazo de las clases contenedoras normales. En cambio, proporcionan operaciones atómicas para sumar, incrementar y asignar.
Las clases de envoltura atómica y sus tipos correspondientes son:
Tipo primitivo Clase de envoltura int
AtomicInteger
long
AtomicLong
boolean
AtomicBoolean
V
AtomicReference
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 referencia del objeto . (Consulte " Genéricos en Java " para obtener una descripción de los parámetros de tipo en Java).V
Ver también
- java.lang
- java.lang.reflect
- Lenguaje de programación Java
- Sintaxis de Java
- Compilador de Java
Referencias
- ^ SJ Chapman, Introducción a Java , Prentice Hall, 1999.
- ^ a b c J. Murach, Programación Java de Murach , cuarta edición, Mike Murach and Associates, Inc., 2011.
- ^ JR Hubbard, Programación con Java , Schaum's Outline Series / McGraw Hill, 1998.
- ^ David O'Meara (abril de 2003). "Objetos mutables e inmutables: ¿Qué clases son inmutables?" . Rancho Java . Consultado el 14 de mayo de 2012 .
Las clases java.math.BigInteger y BigDecimal tampoco son inmutables, aunque quizás deberían haberlo sido.
- ^ Oráculo. "Documentación Java de Oracle" .
Enteros inmutables de precisión arbitraria.