Wrappers
Wrappers
Los wrappers definidos en Java están en la tabla 3.3 (API Java, 2020).
Objetivos de aprendizaje
Solución
Clase: Envoltorio
/**
* Esta clase denominada Envoltorio que utiliza diferentes wrappers
* asociados a tipos de datos.
* @version 1.2/2020
*/
public class Envoltorio {
/* Atributos que son tipos primitivos de datos, cada uno con su
valor inicial */
byte a = 7;
int b = 100;
float c = 28.9f;
double d = 271.8;
char e = ‘M’;
/* Atributos que son envoltorios (wrappers). Cada envoltorio está
asociado a su correspondiente tipo primitivo de dato */
Byte objetoByte;
Integer objetoInteger;
Float objetoFloat;
Double objetoDouble;
Character objetoChar;
String, wrappers y estructuras de almacenamiento 155
/**
* Método que crea un envoltorio a partir de su tipo primitivo de
* dato y muestra su valor en pantalla
*/
public void convertirToWrapper() {
objetoByte = new Byte(a);
objetoInteger = new Integer(b);
objetoFloat = new Float(c);
objetoDouble = new Double(d);
objetoChar = e; /* Character no tiene un constructor como los
otros envoltorios */
System.out.println(“Objeto Byte = “ + objetoByte);
System.out.println(“Objeto Integer = “ + objetoInteger);
System.out.println(“Objeto Float = “ + objetoFloat);
System.out.println(“Objeto Double = “ + objetoDouble);
System.out.println(“Objeto Character = “ + objetoChar);
}
/**
* Método que convierte los envoltorios en tipos primitivos de datos
* y muestra el resultado en pantalla. Realiza la acción inversa del
* método convertirToWrapper
*/
public void convertirToTipoPrimitivo() {
byte tipoByte = objetoByte;
int tipoInt = objetoInteger;
float tipoFloat = objetoFloat;
double tipoDouble = objetoDouble;
char tipoChar = objetoChar;
System.out.println(“Tipo byte = “ + tipoByte);
System.out.println(“Tipo int = “ + tipoInt);
System.out.println(“Tipo float = “ + tipoFloat);
System.out.println(“Tipo double = “ + tipoDouble);
System.out.println(“Tipo char = “ + tipoChar);
}
/**
* Método que realiza varias acciones en un objeto de tipo Character
*/
public void consultarChar() {
boolean esMiníscula = Character.isLowerCase(e); /* Determina si
el carácter está en minúscula */
156 Ejercicios de programación orientada a objetos con Java y UML
Diagrama de clases
Diagrama de objetos
Ejercicios propuestos
Método Descripción
nextLine() Leer un valor String ingresado por teclado.
nextBoolean() Lee un valor de tipo boolean ingresado por teclado.
nextByte() Lee un valor byte ingresado por teclado.
nextDouble() Lee un valor double ingresado por teclado.
nextFloat() Lee un valor float ingresado por teclado.
nextInt() Lee un valor int ingresado por teclado.
nextLine() Lee un valor String ingresado por teclado.
nextLong() Lee un valor long ingresado por teclado.
nextShort() Lee un valor short ingresado por teclado.
Objetivos de aprendizaje
Solución
Clase: EnvoltorioTeclado
import java.util.*;
/**
* Esta clase denominada EnvoltorioTeclado modifica el código de la clase
* Envoltorio para solicitar entrada de datos por teclado.
* @version 1.2/2020
*/
160 Ejercicios de programación orientada a objetos con Java y UML
/**
* Método que crea un envoltorio a partir de su tipo primitivo de
* dato y muestra su valor en pantalla
*/
public void convertirToWrapper() {
objetoByte = new Byte(a);
objetoInteger = new Integer(b);
objetoFloat = new Float(c);
objetoDouble = new Double(d);
objetoChar = new Character(e);
objetoBoolean = new Boolean(f);
System.out.println(“Objeto Byte = “ + objetoByte);
System.out.println(“Objeto Integer = “ + objetoInteger);
System.out.println(“Objeto Float = “ + objetoFloat);
System.out.println(“Objeto Double = “ + objetoDouble);
System.out.println(“Objeto Character = “ + objetoChar);
System.out.println(“Objeto Booelan = “ + objetoBoolean);
}
/**
* Método que convierte los envoltorios en tipos primitivos de datos
* y muestra el resultado en pantalla. Realiza la acción inversa del
* método convertirToWrapper
*/
public void convertirToTipoPrimitivo() {
byte tipoByte = objetoByte;
int tipoInt = objetoInteger;
float tipoFloat = objetoFloat;
double tipoDouble = objetoDouble;
char tipoChar = objetoChar;
boolean tipoBoolean = objetoBoolean;
System.out.println(“Tipo byte = “ + tipoByte);
System.out.println(“Tipo int = “ + tipoInt);
System.out.println(“Tipo float = “ + tipoFloat);
System.out.println(“Tipo double = “ + tipoDouble);
System.out.println(“Tipo char = “ + tipoChar);
}
162 Ejercicios de programación orientada a objetos con Java y UML
/**
* Método que realiza varias acciones en un objeto de tipo Character
*/
public void consultarChar() {
// Determina si el carácter está en minúscula
boolean esMiníscula = Character.isLowerCase(e);
System.out.println(“¿El carácter e = “ + e + “ está en minúscula? =
“ + esMiníscula);
// Determina si el carácter está en mayúscula
boolean esMayúscula = Character.isUpperCase(e);
System.out.println(“¿El carácter e = “ + e + “ está en mayúscula? =
“ + esMayúscula);
boolean esLetra = Character.isLetter(e); /* Determina si el carácter
es una letra */
System.out.println(“¿El carácter e = “ + e + “ está una letra? = “ +
esLetra);
boolean esDigito = Character.isDigit(e); /* Determina si el carácter
es un dígito */
System.out.println(“¿El carácter e = “ + e + “ es un dígito? = “ +
esDigito);
char charMinúscula = Character.toLowerCase (e); /* Convierte el
carácter a minúscula */
System.out.println(“Carácter e = “ + e + “ convertido a minúscula
= “ + charMinúscula);
}
/**
* Método main que instancia un objeto EnvoltorioTeclado y prueba
* los métodos para convertir de tipo primitivo de dato a envoltorio,
* de envoltorio a tipo primitivo de dato y diferentes métodos sobre
* el envoltorio Character
*/
public static void main(String args[]) {
EnvoltorioTeclado wrapper = new EnvoltorioTeclado();
wrapper.convertirToWrapper();
wrapper.convertirToTipoPrimitivo();
wrapper.consultarChar();
}
}