"Hello, Amigo! Nakilala mo na ang instanceof operator. Ngayon sasabihin ko sa iyo kung paano at saan ito magagamit. instanceof is a very simple and efficient operator."

"Parang ad yan!"

"Ito ay talagang napakasimple. Ito ay ginamit tulad nito: «object» instanceof «class» ."

Sinusuri nito kung ang isang bagay ay isang halimbawa ng isang partikular na klase. Ito ay mas madali kaysa ipaliwanag ito. Tingnan ang halimbawang ito:

Code Paglalarawan
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
magiging totoo ang isInt . Ang object na isinangguni ng variable o ay isang instance ng Integer class.
Object o = "Mama";
boolean isInt = o instanceof Integer;
ang isInt ay magiging false . Ang bagay na isinangguni ng variable o ay hindi isang instance ng klase ng Integer . Ito ay isang String object.
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof FileInputStream;
ang isFIS ay magiging totoo . Ang object na isinangguni ng variable o ay isang instance ng klase ng FileInputStream .

"Oo, napakasimple niyan."

"Ang operator na ito ay nag-account din para sa mana. Tingnan ito."

Code Paglalarawan
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
Narito mayroon kaming tatlong deklarasyon ng klase: Hayop, Pusa, at Tigre. Nagmana ng Hayop ang pusa. At ang Tigre ay namamana ng Pusa.
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
ang isCat  ay magiging  totoo .  Magiging  totoo
ang isTiger . isAnimal  ay magiging  totoo .
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
ang isCat  ay magiging huwad .
Ang isTiger  ay magiging  huwad .
isAnimal  ay magiging  totoo .

At kahit na mga interface:

Code Paglalarawan
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
Lumikha ng dalawang klase: Cat, TomCat at ang Moveable interface
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
ang isCat  ay magiging  totoo .
isMoveable  ay magiging  totoo .
isTom  ay magiging  totoo .
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
ang isCat  ay magiging  totoo .
isMoveable  ay magiging  false .
isTom  ay magiging  huwad .

Ang instanceof operator ay ganito ang hitsura: a instanceof B .

Sa madaling salita, babalik ng true ang instanceof operator kung:

1) ang variable a ay nag-iimbak ng isang sanggunian sa isang bagay ng uri B

2)  ang variable a ay nag-iimbak ng isang sanggunian sa isang bagay na ang klase ay nagmamana ng  B

3)  ang variable a ay nag-iimbak ng isang sanggunian sa isang bagay na nagpapatupad ng interface  B

Kung hindi, ang instanceof operator ay magbabalik ng false .

"Got it. So bakit kailangan ito, Uncle Rishi?"

"Sasabihin sa iyo ni Ellie ang tungkol diyan ngayon. This is a really nice operator. You'll be convinced of that today."