Introducción a Java
Módulo 2
Casteo
HTML5: Fundamentos Web
Introducción a Java
Introducción
Muchas veces nos encontraremos con la necesidad
de convertir un tipo de dato a otro tipo; Java al ser un
lenguaje de tipado fuerte (cada variable u objeto del
programa se definen como poseedores de un tipo de dato
específico), nos da las herramientas para poder lograr lo
que también se conoce como conversión de tipos.
Existen dos tipos de casteo: implícito y explícito.
Introducción a Java
Casteo implícito
Esto ocurre cuando necesitamos un tipo de dato
byte miByte = 37;
más pequeño en otro más grande, lo podemos
short miShort = miByte;
ver con los números; sabemos que un número
int miInt = miShort;
entero pertenece a los números reales (con
long milong = miInt;
decimales), cuando nos encontremos con la
necesidad de hacer esto, no tendremos que float miFloat = miLong;
escribir ningún tipo de código o sentencia. double miDouble = miFloat;
Algo particular que pasa con los char, es que
podemos asignarlos directamente a un int o a
un numérico más grande ¿Y esto por qué? Java char miChar = ‘P’;
devolverá el valor ASCII del carácter dado. int miInt = miChar;
Introducción a Java
Casteo explícito
Este caso sucede cuando queremos asignar un
double miDouble2 = 2.9856;
tipo de dato más grande a un tipo de dato más
float miFloat2 = (float) miDouble2;
pequeño, por ejemplo, un numérico decimal a
long milong2 = (long) miFloat2;
numérico entero. En casos así, necesariamente
int miInt2 = (int) miLong2;
tenemos que escribir entre paréntesis el tipo de
dato al que queremos convertir. short miShort2 = (short) miInt2;
float miByte2 = (byte) miShort2;
Hay que tener en cuenta que lo que pasará es
que el número será truncado cuando hagamos
la conversión de un decimal a un entero.
Introducción a Java
Ahora bien, al contrario de lo que pasa de un
char a un int, la conversión de int a char no
es compatible por si sola, por lo que
tendremos que hacerla de forma explícita.
int miInt2 = (int) miLong2;
char miChar = (char) miInt2;
Introducción a Java
Cuadro de casteo
Convertir desde
Convertir a
boolean byte short char int long float double
boolean no no no no no no no
byte no si cast si si si si
short no cast cast si si si si
char no cast cast si si si si
Valor Descripción
int no cast cast cast si si* si*
no no hay posibilidad de conversión
long no cast cast cast cast si* si* si casting es implícito
float no cast cast cast cast cast si casting implícito pero se puede
si*
producir pérdida de precisión
double no cast cast cast cast cast cast
cast casting explícito
¡Sigamos
trabajando!