abril 12, 2010

Type Casting (Conversiones de Tipo).

También conocido como conversión de tipo. Java es un lenguaje fuertemente tipeado, de modo que cada variable y cada valor del programa se definen como poseedores de un tipo de dato en particular.

Java efectúa en forma automática algunas conversiones de tipo, y permite obligar algunas otras conversiones de tipo. Por lo tanto tenemos dos clases de conversiones de tipo: la promoción (conversión de tipo automática) y el casting (conversión forzada).

La promoción ocurre cuando hay un intento de usar un tipo de dato más pequeño en donde existe otro tipo de dato más grande.

Ejemplo.

Considera el siguiente código:

/**
 * Ilustra el proceso de conversión automático (promoción).
 */
public class Impuesto
{
    public static void main( String[] args ) 
    {
        int precio = 20;
        float impuesto = 0.15f;

        double total = precio * impuesto;

        System.out.println( total );
    }   //fin del método main
}   //fin de la clase Impuesto

En la declaración, la variable precio el valor 20 está representado en un formato de 32 bits y el valor de la variable impuesto en un formato de 32 bits con el punto flotante. Ahora, cuando en una expresión aritmética intervienen diferentes tipos la JVM hace una conversión automática y realiza los cálculos con el tipo de mayor precisión. En este caso la operación precio * impuesto implica que el valor de precio será traducido a un nuevo formato de 32 bits con punto flotante. Finalmente al hacer la asignación del resultado a una variable de tipo double nuevamente la JVM realiza una promoción de ese valor a otro formato de 64 bits con punto flotante.

En la siguiente figura las flechas sólidas ilustran cuando Java realizará una promoción. Las fechas con puntos muestran conversiones en las que puede haber pérdida de información y en consecuencia se necesita utilizar una conversión forzada (casting).



El casting sucede cuando Java no sabe cómo tratar algún tipo de dato porque puede que un el número a convertir esté fuera del rango del tipo a que se quiere convertir. Entonces obliga al programador a realizar esa conversión forzada (explicita). La sintaxis para realizar un cast es:


Como se muestra en la figura, para realizar un cast necesitamos de un tipo de dato dentro de un paréntesis. Se debe colocar un operador de conversión a la izquierda del valor que se desea convertir.  El siguiente diagrama ilustra una conversión por casting.

1 comentario:

Deja tus comentarios