Vous êtes sur la page 1sur 8

Grado en Ingeniera Informtica Grado en Matemticas e Informtica

Asignatura: PROGRAMACIN II

Clases Envoltorio (Wrapper)


Clara Benac Earle
DLSIIS. Facultad de Informtica Universidad Politcnica de Madrid Octubre 2012

Definicin
En Java existen tipos primitivos (int, boolean, double, etc.) para crear datos primitivos y clases para poder crear objetos En ocasiones (lo veremos ms adelante) es muy conveniente poder tratar datos primitivos como objetos. Para ello se pueden crear las clases envoltorio (wrapper class) que crean un envoltorio sobre los datos primitivos para poder tratarlos como objetos Ejemplo: podramos definir la siguiente clase envoltorio para los enteros

public class Entero { private int valor; public Entero (int valor) { this.valor = valor; } public int intValue() { return valor; }
2

Clases envoltorio en Java


Java proporciona las clases envoltorio para todos los tipos primitivos (no tenemos que definirlos nosotros). Algunas clases envoltorio existentes son:

Integer para int Double para double Character para char

Las clases envoltorio de Java tambin proporcionan mtodos para manipular datos primitivos (conversiones de/hacia datos primitivos, conversiones a String, etc.).

Por ejemplo, ver documentacin de la clase Integer: http://docs.oracle.com/javase/6/docs/api/java/lang/Integer. html


3

Uso de las clases envoltorio


Las clases envoltorio se usan como cualquier otra clase
Integer entero1 = new Integer(5); int entero2 = entero1.intValue();

Qu valor se guarda en la variable entero1? Y en entero2?

Conversin automtica
El compilador de Java hace una conversin automtica entre tipos primitivos y los objetos de las clases envoltorio

int entero1; Integer entero2; entero1 = 1; entero2 = 2; entero1 = entero2; entero2 = entero1;

int entero1; Integer entero2; entero1 = 1; entero2 = new Integer(2); entero1 = entero2.intValue(); entero2 = new Integer(entero1);

Qu valor se guarda en la variable entero1? Y en entero2?

Ejercicio
public class TestFecha { public static void main(String[] args) { Fecha fecha1 = new Fecha(3,10,1990); Fecha fecha2 = new Fecha(3,10,1990); float numero1=5.5f; float numero2=5.5f; Float numero3=5.5f; Float numero4=5.5f; Float numero6=numero4; Fecha fecha3 = fecha1; } }

Preguntas 1
Seleccionar la respuesta correcta para cada pregunta: If (numero3==numero2) System.out.println(numero3 y numero2 son iguales); else System.out.println(num3 y num2 son distintos); fecha3.setAnio(25); If (fecha1==fecha3) System.out.println(fecha1 y fecha3 son iguales); else System.out.println(fecha1 y fecha3 son distintos);

Preguntas 2
If (numero3==numero4) System.out.println(numero3 y numero4 son iguales); else System.out.println(numero3 y numero4 son distintos); fecha3.setAnio(25); If (fecha1.equals(fecha2)) System.out.println(fecha1 y fecha2 son iguales); else System.out.println(fecha1 y fecha2 son distintos);