Herramientas de usuario

Herramientas del sitio


bloque4:wrappers

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

bloque4:wrappers [03/03/2018 22:10] – creado Fernando Valdeónbloque4:wrappers [05/03/2018 11:37] (actual) – borrado Fernando Valdeón
Línea 1: Línea 1:
-====== 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: 
- 
-<code java> 
-//Instanciación rápida 
-Integer numero = 5; 
- 
-//Instanciación lenta 
-Integer numero2 = new Integer(5); 
-</code> 
- 
-===== 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("-124"); 
-</code> 
- 
-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: 
-<code java> 
-Integer numero = new Integer(5); 
-int valor = numero.intValue(); 
-</code> 
- 
-===== 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; 
- 
-</code> 
- 
-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; 
-</code> 
- 
-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. 
- 
-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. 
- 
- 
-</code> 
- 
----- 
- 
-(c) {{date> %Y}} Fernando Valdeón 
bloque4/wrappers.1520115002.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)