Los tipos de datos primitivos no son objetos pero en ocasiones, se necesitan objetos.
| Tipo primitivo | Clase envolvente |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
¿Qué diferencia hay? Los datos primitivos son un tipo que se hereda de lenguajes de programación que no están orientas a objetos, como por ejemplo C.
Además, los datos primitivos no necesitan ser declarados, es decir, podemos declarar directamente. Por ejemplo podemos inicializar un tipo primitivo de la siguiente manera:
int numero = 0;
Y también podemos utilizar la clase Integer y necesitaremos crear el objeto:
Integer numero = new Integer(0);
Los wrapper, conocidos como clases envolventes, son unas clases especiales que proveen de funciones básicas a los tipos primitivos. Además, estas clases tienen métodos que permiten manipular el tipo de dato primitivo como si fuera un objeto.
Hay varios términos utilizados cuando usamos wrappers:
- Boxing: Convertir un tipo primitivo en su clase Wrapper.
- Unboxing: Convertir un objeto de una clase Wrapper en su tipo primitivo.
Entre las funciones principales que comparten estas clases son:
- xxxValue(): Recibe un valor numérico y lo convierte a tipo primitivo:
Integer numero = new Integer(13);
double n = numero.doubleValue();
- valueOf(), parseXxx(): Convierten una cadena al tipo primitivo especificado o hace saltar la excepción NumberFormatException si no es posible hacerlo.
String a = new String("113");
Integer b = Integer.valueOf(a);
- toString(): Convertimos tipos de datos primitivos en cadenas de caracteres.
Integer a = new Integer(12);
String b = a.toString();