"¡Hola Amigo! Ya conoces el operador instanceof . Hoy te voy a contar cómo y dónde se puede utilizar. instanceof es un operador muy simple y eficiente."
"¡Eso suena como un anuncio!"
"Realmente es muy simple. Se usa así: «objeto» instancia de «clase» .
Comprueba si un objeto es una instancia de una clase en particular. Es más fácil que explicarlo. Mira este ejemplo:
Código | Descripción |
---|---|
|
isInt será verdadero . El objeto al que hace referencia la variable o es una instancia de la clase Integer . |
|
isInt será falso . El objeto al que hace referencia la variable o no es una instancia de la clase Integer . Es un objeto de cadena . |
|
isFIS será verdadero . El objeto al que hace referencia la variable o es una instancia de la clase FileInputStream . |
"Sí, eso es muy simple".
"Este operador también da cuenta de la herencia. Compruébalo".
Código | Descripción |
---|---|
|
Aquí tenemos tres declaraciones de clase: Animal, Cat y Tiger. Gato hereda Animal. Y Tiger hereda Cat. |
|
isCat será cierto . isTiger será cierto . isAnimal será cierto . |
|
isCat será falso . isTiger será falso . isAnimal será cierto . |
E incluso interfaces:
Código | Descripción |
---|---|
|
Crea dos clases: Cat, TomCat y la interfaz Moveable |
|
isCat será cierto . isMoveable será verdadero . isTom será cierto . |
|
isCat será cierto . isMoveable será falso . isTom será falso . |
El operador instanceof se ve así: una instancia de B .
En otras palabras, el operador instanceof devolverá verdadero si:
1) la variable a almacena una referencia a un objeto de tipo B
2) la variable a almacena una referencia a un objeto cuya clase hereda B
3) la variable a almacena una referencia a un objeto que implementa la interfaz B
De lo contrario, el operador instanceof devolverá false .
"Entendido. Entonces, ¿por qué es esto necesario, tío Rishi?"
"Ellie te hablará de eso hoy. Este es un operador muy agradable. Te convencerás de eso hoy".
GO TO FULL VERSION