Clase Wrapper en Java - Autoboxing, Unboxing y Conversión

Tabla de contenido:

Anonim

Introducción a la clase Wrapper en Java

Wrapper Class es una clase importante de la biblioteca java.lang. Los objetos de clase de contenedor crean un contenedor para los tipos de datos primitivos. Al crear un objeto de clase contenedora, se crea espacio en la memoria donde se almacena el tipo de datos primitivos.

La clase Wrapper proporciona algunas características para la conversión del objeto a datos primitivos y datos primitivos a objeto, es decir, boxing / unboxing. La conversión de objetos a datos primitivos y datos primitivos a un objeto se realiza automáticamente. El tipo de datos primitivo se refiere a int, float, char, double, byte, etc.

Sintaxis:

La declaración a continuación muestra cómo funciona una clase Wrapper en el programa java.

por ejemplo, int i = 100;

En el siguiente ejemplo, podemos ver que i es un tipo de datos entero. Algún tiempo en Java entero debe pasarse como un tipo de objeto. En este caso, podemos usar la clase wrapper para convertir un entero en un objeto.

Integer intVal = new Integer(i);

En la sintaxis dada anteriormente, podemos ver cómo se convierte un tipo de datos primitivo en un objeto utilizando un objeto de clase Integer. También se puede decir que el tipo de datos primitivo está envuelto como un objeto.

Usos de la clase Wrapper en Java

  1. La clase Wrapper se puede usar para convertir un objeto en un tipo de datos primitivo o viceversa.
  2. El uso de clases wrapper mejora el rendimiento del programa.
  3. La clase Wrapper ayuda en la serialización de objetos y viceversa. Puede convertir datos primitivos en objetos. A veces necesitamos transmitir objetos, en ese caso, la clase contenedora puede convertirlo en formato de serialización.
  4. La clase contenedora proporciona algunos métodos importantes, que se utilizan para realizar la búsqueda y clasificación en las colecciones.
  5. Resta y suma, estos tipos de operaciones no pueden modificar el antiguo valor del entero primitivo de la clase Wrapper, por eso la clase Wrapper se conoce como inmutable.
  6. Clase de envoltura utilizada en el proceso de subprocesamiento múltiple, ya que el proceso de subprocesamiento múltiple necesita un objeto para la sincronización de procesos. La clase de contenedor convierte diferentes tipos de datos en un objeto.

Sobre la base de JavaAPI, la jerarquía de clases Wrapper mantiene Object en la parte superior de las diferentes clases primitivas. Number, Character & Boolean viene en el segundo nivel justo después del objeto. En el tercer nivel, Byte, Short, Int, Long, Float, Double se incluye en el tipo de datos Number.

Las clases de contenedor utilizan los siguientes dos mecanismos Autoboxing y unboxing para la conversión / ajuste del tipo de datos o la conversión de un objeto en el tipo de datos primitivo.

Autoboxing: Autoboxing se refiere a la conversión automática del tipo de datos primitivo a objeto usando clases Wrapper. Es conocido como Autoboxing. En los siguientes ejemplos, int convertido a objeto entero y en los ejemplos c, diferentes tipos de datos primitivos se están convirtiendo en el objeto correspondiente.

Unboxing: Unboxing es el proceso inverso de Autoboxing. La conversión automática de objetos de clase de contenedor al tipo de datos primitivo correspondiente se conoce como Unboxing. En el siguiente ejemplo b, el objeto Integer se está convirtiendo en un tipo de datos primitivo int.

Ejemplos de clase Wrapper en Java

A continuación se muestran los diferentes ejemplos de Wrapper Class en Java.

Ejemplo 1

En el ejemplo que se muestra a continuación, podemos ver cómo se realiza la conversión manual a través de la clase wrapper de int i a un objeto k.

Código:

import java.util.*;
class WrapperExample (
public static void main(String args())(
int j=100;
//converting int j to integer k as an object
Integer k = new Integer(j);
System.out.println(j + "\n" + k);
)
)

Salida:

En el ejemplo anterior, podemos ver cómo la conversión se lleva a cabo explícitamente.

Ejemplo # 2

En el siguiente ejemplo, podemos ver que este proceso de conversión a veces se lleva a cabo automáticamente, es decir, conocido como autoboxing.

Código:

import java.util.*;
class AutoboxingUnboxingExample (
public static void main(String args())(
int j = 500;
ArrayList arrValues = new ArrayList();
arrValues.add(j); // autoboxing takes place implicitly
System.out.println(arrValues.get(0));
)
)

Salida:

En el ejemplo anterior, el valor int se convierte en objeto implícitamente como un objeto. Además, este valor puede obtenerse de ArrayList.

Ejemplo # 3

En este ejemplo, veremos la implementación de Unboxing. Unboxing es el proceso inverso de Autoboxing.

Código:

import java.util.*;
class AutoboxingUnboxingExample (
public static void main(String args())(
ArrayList arrValues = new ArrayList();
arrValues.add(250);
//unboxing here as int data type from Integer object
int k = arrValues.get(0);
//value printed is in primitive data type
System.out.println(k);
)
)

Salida:

En el ejemplo anterior, el campo de objeto ArrayList se convierte en k tipo de datos primitivos, es decir, int k.

Ejemplo # 4

El siguiente ejemplo dado tiene todos los detalles de Autoboxing y Unboxing.

Código:

import java.util.*;
class WrapperConversionExample (
public static void main(String args())(
int i = 15;
float j = 9.6f;
double k = 120.8;
byte l = 1;
//creating instance of Integer object
Integer iObj = new Integer(i);
//creating instance of Float object
Float fObj = new Float(j);
//creating instance of Double object
Double dObj = new Double(k);
//creating instance of Double object
Byte bObj = new Byte(l);
//value printed is in object
System.out.println("Value as an Integer object > " + iObj);
System.out.println("Value as a Float object > " + fObj);
System.out.println("Value as a Double object > " + dObj);
System.out.println("Value as a Byte object > " + bObj);
//primitive data type from the object
int m = iObj;
float n = fObj;
double o = dObj;
byte p = bObj;
//value printed is in primitive data type
System.out.println("Value as an int primitive type > " + m);
System.out.println("Value as a float primitive type > " + n);
System.out.println("Value as a double primitive type > "+ o);
System.out.println("Value as a byte primitive type > " + p);
)
)

Salida:

En el programa anterior, podemos ver la implementación de las clases Wrapper. Las clases de envoltura están convirtiendo el tipo de datos primitivo en objeto y el objeto en el tipo de datos primitivo. La clase contenedora proporciona clases separadas para cada tipo de datos primitivo.

Conclusión

A través de las clases Wrapper, podemos entender fácilmente el autoboxing y unboxing. Cómo se lleva a cabo la conversión de primitivo a objeto y viceversa, lo que se puede entender fácilmente a través de las clases Wrapper. Para cada uno de los tipos de datos primitivos, hay una clase dedicada en java.

Artículo recomendado

Esta es una guía de Wrapper Class en Java. Aquí discutimos la sintaxis y los usos de la clase wrapper en Java junto con diferentes ejemplos e implementación de código. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. ¿Cómo funciona la declaración de caso en Java?
  2. ¿Qué es genéricos en Java?
  3. El concepto de serialización en Java
  4. Preguntas de la entrevista de Java Top 8
  5. Herramientas de implementación de Java
  6. Ejemplos y cómo funcionan los genéricos en C #