instancia del operador

Módulo 2: Núcleo de Java
Nivel 7 , Lección 0
Disponible

"¡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
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
isInt será verdadero . El objeto al que hace referencia la variable o es una instancia de la clase Integer .
Object o = "Mama";
boolean isInt = o instanceof 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 .
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof FileInputStream;
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
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
Aquí tenemos tres declaraciones de clase: Animal, Cat y Tiger. Gato hereda Animal. Y Tiger hereda Cat.
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  será  cierto .
isTiger  será  cierto .
isAnimal  será  cierto .
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  será falso .
isTiger  será  falso .
isAnimal  será  cierto .

E incluso interfaces:

Código Descripción
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
Crea dos clases: Cat, TomCat y la interfaz Moveable
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  será  cierto .
isMoveable  será  verdadero .
isTom  será  cierto .
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
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".

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION