bloque4:wrappers
Diferencias
Muestra las diferencias entre dos versiones de la página.
bloque4:wrappers [03/03/2018 22:10] – creado Fernando Valdeón | bloque4:wrappers [05/03/2018 11:37] (actual) – borrado Fernando Valdeón | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== Clases envoltorio (Wrapper) ====== | ||
- | El paquete '' | ||
- | programa en Java como ya hemos visto en otras ocasiones, por lo que no es necesario hacer un '' | ||
- | 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**: | ||
- | * **Long**: | ||
- | * **Float**: | ||
- | * **Double**: | ||
- | * **Character**: | ||
- | * **Boolean**: | ||
- | * **Byte**: | ||
- | * **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 '' | ||
- | |||
- | <code java> | ||
- | // | ||
- | Integer numero = 5; | ||
- | |||
- | // | ||
- | 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: | ||
- | |||
- | <code java> | ||
- | int numero; | ||
- | numero = Integer.parseInt(" | ||
- | </ | ||
- | |||
- | El método '' | ||
- | Todas las clases envoltorio tiene el método estático '' | ||
- | |||
- | Métodos de instancia | ||
- | * intValue(), booleanValue(), | ||
- | Permiten obtener el valor primitivo del objeto envoltorio. Se debe llamar desde un objeto del tipo concreto: | ||
- | <code java> | ||
- | 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: | ||
- | <code java> | ||
- | 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. | ||
- | |||
- | <code java> | ||
- | Integer objeto = new Integer(6); | ||
- | |||
- | int primitivo = objeto; | ||
- | </ | ||
- | |||
- | De esta forma no es necesario llamar al método '' | ||
- | |||
- | ===== 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. | ||
- | |||
- | La otra parte de la inmutabilidad es ocurre cuando asigno directamente el mismo valor a una variable envoltorio: | ||
- | <code java> | ||
- | Integer numero1 = new Integer(5); | ||
- | Integer numero2 = new Integer(5); | ||
- | |||
- | numero1 == numero2 //false, son objetos distintos | ||
- | |||
- | numero1 = 6; | ||
- | numero2 = 6; | ||
- | |||
- | numero1 == numero2 //true, cada variable referencia al mismo objeto. | ||
- | |||
- | |||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | (c) {{date> %Y}} Fernando Valdeón |
bloque4/wrappers.1520115002.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)