Els tipus de dades primitius no són objectes però, de vegades, es necessiten objectes.
| Tipus primitiu | Classe envoltant |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
Quina diferència hi ha? Les dades primitives són un tipus que s'hereda de llenguatges de programació que no estan orientats a objectes, com per exemple C.
A més, les dades primitives no necessiten ser declarades, és a dir, podem declarar directament. Per exemple, podem inicialitzar un tipus primitiu de la següent manera:
int numero = 0;
I també podem utilitzar la classe Integer i necessitarem crear l'objecte:
Integer numero = new Integer(0);
Els wrappers, coneguts com a classes envoltants, són unes classes especials que proveeixen de funcions bàsiques els tipus primitius. A més, aquestes classes tenen mètodes que permeten manipular el tipus de dada primitiu com si fos un objecte.
Hi ha diversos termes utilitzats quan fem servir wrappers:
- Boxing: Convertir un tipus primitiu en la seva classe Wrapper.
- Unboxing: Convertir un objecte d'una classe Wrapper en el seu tipus primitiu.
Entre les funcions principals que comparteixen aquestes classes hi ha:
- xxxValue(): Rep un valor numèric i el converteix a tipus primitiu:
Integer numero = new Integer(13);
double n = numero.doubleValue();
- valueOf(), parseXxx(): Converteixen una cadena al tipus primitiu especificat o fan saltar l'excepció NumberFormatException si no és possible fer-ho.
String a = new String("113");
Integer b = Integer.valueOf(a);
- toString(): Convertim tipus de dades primitius en cadenes de caràcters.
Integer a = new Integer(12);
String b = a.toString();