Cargando



Casting de Objetos en Java

En este tutorial veremos cómo hacer el casting de los objetos en nuestros programas escritos en Java.


ago 01 2014 20:40
Intermedio
ago 03 2014 18:43
Los conceptos básicos de programación en Java a veces pueden aplicarse a los objetos de una forma similar para obtener un resultado parecido, en este caso podemos ver la técnica de hacer casting, si recordamos cuando hacíamos casting de una variable era simplemente hacer que una variable de un tipo se transformara en otro tipo.

Con los objetos podemos hacer algo similar podemos cambiar el tipo de un objeto por otro siempre y cuando esté dentro de la estructura jerárquica en su herencia.

Ejemplo Sencillo


Para hacer el casting podemos realizarlo de forma implícita, es decir, con una asignación ya Java sabe que debe cambiar el tipo del objeto, para ello podemos hacer lo siguiente:

java_casting_obj.jpg


Si nos fijamos en la imagen, hemos declarado un objeto de la clase Objeto y luego decimos que era una instancia de Estudiante, a pesar que ya el objeto era de un tipo hemos forzado el casting y se convirtió en otro tipo con una simple asignación, esto es así porque la clase Estudiante hereda de la clase Objeto.

Ahora si realizamos el caso contrario y un objeto de la clase Estudiante lo cambiamos a tipo Objeto que sucedería:


java_casting_obj2.jpg


En este caso tendríamos un error de compilación de nuestro programa, esto se debe a la jerarquía de la herencia, como un objeto de Estudiante siempre será del tipo Objeto no hay problema, pero un Objeto no siempre será Estudiante por tener un orden jerárquico superior, por ello debemos tener cuidado cuando establecemos el casting de los tipos de objeto.

Ahora si queremos hacer un tipo de casting explicito, podemos hacer este tipo de acciones como pasar de un orden superior a uno inferior, veamos el siguiente caso:


java_casting_obj3.jpg


En este ejemplo le estamos indicando directamente al compilador que debe transformar al objeto o del tipo Objeto al tipo Estudiante, con ello hacemos una conversión similar a la que utilizamos con los tipos de variable primitivos.

instanceof
Otra cosa que podemos utilizar para asegurarnos que todo va a funcionar cuando trabajamos con los castings de los objetos, es la palabra reservada instanceof con ella podemos saber si un objeto es una instancia de una clase en particular, con ello podemos crear nuevas condiciones y solo ejecutar un casting por ejemplo cuando el objeto es una instancia de una clase particular.


Por ejemplo:

Objeto miObjeto = new Circulo();

if ( miObjeto instanceof Circulo) {
System.out.println("El diámetro del circulo es: " +( (Circulo)miObjeto).getDiametro());
}

Aquí vemos entonces como hacemos primero un casting implícito, hemos declarado un objeto de la clase Objeto y luego le dimos un tipo Circulo, luego preguntamos que en nuestro condicional if() si el objeto es una instancia de Circulo, de ser positiva la respuesta pasamos al bloque interno, ahí hacemos nuevamente un casting esta vez explicito e invocamos un método de la clase.

Como vemos realizar este procedimiento no es nada complejo, solo que debemos tener en claro cómo funciona Java y la estructura de jerarquía que llevan las clases y sus instancias. Con esto finalizamos este tutorial ya podemos hacer casting de objetos y también podemos saber de qué clase son instancia los mismos.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X