none
Explicacion Castear

    Pregunta

  • Saludos Parnerts de informatica:
    Soy un desarrollador principiante, asi que No comprendo muy bien la expresion "castear" la cual se usa cuando se habla de colecciones genericas ¿alguien puede explicarme un poco a que se refiere?

    Gracias de antemano
    Tec. en soporte
    domingo, 25 de octubre de 2009 16:28

Todas las respuestas

  • Hola!!!

    Castear o casting hace referencia a realizar cambios entre tipos de datos distintos, o sea, donde haya un choque entre tipos de valores de datos; en el material del curso se habla de que se creea un Array cuyos elementos a ingresar deben ser de tipo string. Pero más adelante se intenta ingresar un dato de tipo entero en donde se explica que sin hacer uso de generics, el error se nota a la hora de tratar de ejcutarla y es necesario realizar un casteo o casting para su correcta ejecución; caso contrario con el uso de generics donde ciertamente se advierte del error pero más tarde se corrige y no es necesario castear.

    El hecho de castear un valor de tipo de dato x para que se vuelva en y, implica hacer uso de ciertos códigos para que se corrija el error. 
    Existen dos tipos de casting: casting implícito y casting explícito.  El impícito sucede cuando un tipo de dato con menor jerarquía es promovido a un tipo de dato con mayor jerarquía, por ejemplo tengo una variable 'x' entera y otra variable 'y' de tipo double la cual va a tomar el valor asignado a 'x' pero en double:

    int x = 1;
    int y = x;

    Dicho lo anterior se vería así en su ejecución:
    el valor para x sería 1
    el valor para y sería 1.0

    El explicito es cuando se desea forzar una variable a tomar un tipo de dato distinto por decir tengo una variable x de tipo entera y más adelante en mi codificación quiero que sea de tipo double, pues antepongo la palabra double a la variable:

    int x;
    double y = (double) x / (5 * 3);

    Hay que tener en cuenta que el casteo o casting sucede al momento de la asignación, por ejemplo:

    double y  = 2 * (15 / 2);

    Se diría que el valor para la variable 'y', es 12; pero no es así, la variable 'y' toma el valor más siguiente al signo de asignación (=), o sea, 'y' es igual a 2.0. Esta es otra forma de casteo o casting implícito.

    Bye!!! 

    lunes, 26 de octubre de 2009 2:54