"Merhaba Amigo! instanceof operatörü ile zaten tanışmıştınız . Bugün size nasıl ve nerede kullanılabileceğini anlatacağım. instanceof çok basit ve verimli bir operatör."

"Kulağa bir reklam gibi geliyor!"

"Gerçekten çok basit. Şu şekilde kullanılıyor: «object» instanceof «class» ."

Bir nesnenin belirli bir sınıfın örneği olup olmadığını kontrol eder. Açıklamaktan daha kolay. Şu örneğe bakın:

kod Tanım
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
isInt doğru olacaktır . o değişkeni tarafından başvurulan nesne, Tamsayı sınıfının bir örneğidir.
Object o = "Mama";
boolean isInt = o instanceof Integer;
isInt false olacaktır . o değişkeni tarafından başvurulan nesne, Tamsayı sınıfının bir örneği değil . Bu bir String nesnesidir.
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof FileInputStream;
isFIS doğru olacaktır . o değişkeni tarafından başvurulan nesne, FileInputStream sınıfının bir örneğidir.

"Evet, bu çok basit."

"Bu işleç aynı zamanda kalıtımı da hesaba katar. Kontrol edin."

kod Tanım
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
Burada üç sınıf bildirimimiz var: Animal, Cat ve Tiger. Kedi, Hayvanı miras alır. Ve Tiger, Cat'i miras alır.
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat doğru  olacaktır  .
isTiger doğru  olacaktır  .
isAnimal doğru  olacaktır  .
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat yanlış  olacaktır .
isTiger yanlış  olacaktır  .
isAnimal doğru  olacaktır  .

Ve hatta arayüzler:

kod Tanım
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
İki sınıf oluşturun: Cat, TomCat ve Moveable arabirimi
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat doğru  olacaktır  .
isMoveable true  olacaktır  .
isTom doğru  olacaktır  .
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat doğru  olacaktır  .
isMoveable false  olacaktır  .
isTom false  olacaktır  .

instanceof operatörü şöyle görünür: a instanceof B .

Başka bir deyişle, instanceof operatörü şu durumlarda true değerini döndürür :

1) a değişkeni, B tipi bir nesneye referans depolar

2) a  değişkeni, sınıfı B'yi miras alan bir nesneye referans depolar 

3) a  değişkeni, B arayüzünü uygulayan bir nesneye referans depolar 

Aksi takdirde, instanceof operatörü false döndürür .

"Anladım. Peki bu neden gerekli, Rishi Amca?"

"Ellie bugün sana bundan bahsedecek. Bu gerçekten güzel bir operatör. Bugün buna ikna olacaksın."