Dominando el Casting de Tipos en Java: Desde Ensanchamiento hasta Estrechamiento y Más Allá
Casting de Tipos en Java
Esta guía desmitifica el casting de tipos en Java, cubriendo sus formas principales e ilustrando cada una con ejemplos claros.
Antes de sumergirte en el casting de tipos de Java, asegúrate de entender los tipos de datos de Java.
Casting de Tipos
El proceso de convertir el valor de un tipo de dato (int, float, double, etc.) a otro se conoce como casting de tipos.
Java ofrece 13 tipos de conversión, pero este tutorial se centra en las dos categorías principales:
- Casting de Ensanchamiento (Widening)
- Casting de Estrechamiento (Narrowing)
Para una lista completa, consulta la documentación oficial de Conversión de Tipos de Java.
Casting de Ensanchamiento (Widening Type Casting)
En el Casting de Ensanchamiento, Java promociona automáticamente un primitivo más pequeño a uno más grande, asegurando que no haya pérdida de datos.
Ejemplo: Convirtiendo int a double
class Main {
public static void main(String[] args) {
int num = 10;
System.out.println("El valor entero: " + num);
double dato = num;
System.out.println("El valor double: " + dato);
}
}
Salida
El valor entero: 10 El valor double: 10.0
Esto demuestra cómo una variable int es promocionada a double antes de la asignación. La naturaleza automática de esta conversión es por lo que también se llama casting implícito.
Nota: Las conversiones de ensanchamiento son seguras y las realiza el compilador.
Casting de Estrechamiento (Narrowing Type Casting)
Con el Casting de Estrechamiento, debes castear explícitamente un primitivo más grande a uno más pequeño usando paréntesis.
Ejemplo: Convirtiendo double a int
class Main {
public static void main(String[] args) {
double num = 10.99;
System.out.println("El valor double: " + num);
int dato = (int)num;
System.out.println("El valor entero: " + dato);
}
}
Salida
El valor double: 10.99 El valor entero: 10
El casteo (int) trunca la parte fraccionaria, ilustrando por qué esta conversión se considera casting explícito y puede llevar a pérdida de datos.
Nota: Java no realiza automáticamente conversiones de estrechamiento.
A continuación se muestran conversiones prácticas entre primitivos y cadenas.
Ejemplo 1: int a String
class Main {
public static void main(String[] args) {
int num = 10;
System.out.println("El valor entero es: " + num);
String dato = String.valueOf(num);
System.out.println("El valor cadena es: " + dato);
}
}
Salida
El valor entero es: 10 El valor cadena es: 10
Aquí, String.valueOf() convierte el entero a su representación textual.
Ejemplo 2: String a int
class Main {
public static void main(String[] args) {
String dato = "10";
System.out.println("El valor cadena es: " + dato);
int num = Integer.parseInt(dato);
System.out.println("El valor entero es: " + num);
}
}
Salida
El valor cadena es: 10 El valor entero es: 10
El parsing se basa en Integer.parseInt(). Si la cadena no puede parsearse, se lanza una NumberFormatException.
Nota: Valida la entrada para evitar excepciones en tiempo de ejecución.
Java
- Dominando el tipo de dato char en C++: Declaración, ASCII y técnicas de conversión
- Dominando conversión y casting de tipos en Python: Guía completa
- Tipos de Datos Primitivos en Java: Guía Completa con Ejemplos
- Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
- Comentarios en Java: Tipos, Uso y Mejores Prácticas
- Dominar el Bucle for Mejorado en Java: Sintaxis, Ejemplos y Mejores Prácticas
- Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
- Dominando la encapsulación en Java: Guía práctica de ocultamiento de datos
- Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
- Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
- Dominando el Casting de Tipos en Java: Desde Ensanchamiento hasta Estrechamiento y Más Allá