Herramientas de usuario

Herramientas del sitio


bloque3:wrappers

Clases envoltorio (Wrapper)

El paquete java.lang contiene clases básicas. Este paquete se importa por defecto en todo programa en Java como ya hemos visto en otras ocasiones, por lo que no es necesario hacer un import de ninguna de sus clases.

Dentro de este paquete tenemos 8 clases, una por cada tipo primitivo, llamadas clases envoltorio o wrapper.

Su finalidad es ofrecer la posibilidad de tratar a los tipos primitivos como si fueran objetos, ya que habrá ciertos momentos en los que no podamos usar primitivos.

Estas clases son:

  • Integer: envuelve un int
  • Long: envuelve un long
  • Float: envuelve un float
  • Double: envuelve un double
  • Character: envuelve un char
  • Boolean: envuelve un boolean
  • Byte: envuelve un byte
  • Short: envuelve un short

Como vemos todos estos nuevos tipos de datos comienzan por letra mayúscula ya que son clases.

Instanciar objetos envoltorio

De la misma forma que la clase String, las clases envoltorio tienen algunos privilegios. Uno de ellos es la propiedad autoboxing que permite crear un objeto mediante una asignación directa:

//Instanciación rápida
Integer numero = 5;
 
//Instanciación lenta
Integer numero2 = new Integer(5);

Métodos genéricos

Existen algunos métodos que llevamos usando bastante tiempo aunque igual no nos habíamos dado cuenta:

int numero;
numero = Integer.parseInt("-124");

El método estático parseInt() pertenece a la clase Integer, y como es estático, no necesitamos crear un objeto de tipo Integer para usarlo. Todas las clases envoltorio tiene el método estático parseXXX().

Métodos de instancia

  • intValue(), booleanValue(), floatValue(), etc

Permiten obtener el valor primitivo del objeto envoltorio. Se debe llamar desde un objeto del tipo concreto:

Integer numero = new Integer(5);
int valor = numero.intValue();

AutoBoxing

Permite encapsular directamente con una asignación un tipo primitivo dentro de un objeto envoltorio:

int numeroPrimitivo = 5;
Integer numeroObjeto = numeroPrimitivo;
 
//ó también
 
numeroObjeto = 345;

Java crea la instancia de Integer, aunque no lo veamos.

AutoUnboxing

Es la propiedad contraria a la anterior: permite obtener directamente el valor primitivo de un objeto envoltorio.

Integer objeto = new Integer(6);
 
int primitivo = objeto;

De esta forma no es necesario llamar al método intValue().

Inmutabilidad

De la misma forma que la clase String, las clases envoltorios tienen valores inmutables. Esto quiere decir que cada vez que cambiamos el valor de una variable de tipo wrapper, estamos construyendo un nuevo objeto.


© 2020 Fernando Valdeón

bloque3/wrappers.txt · Última modificación: 29/01/2019 10:48 por Fernando Valdeón