"Halo, Amigo! Anda telah bertemu dengan operator instanceof . Hari ini saya akan memberi tahu Anda bagaimana dan di mana ia dapat digunakan. instanceof adalah operator yang sangat sederhana dan efisien."

"Kedengarannya seperti iklan!"

"Ini sangat sederhana. Digunakan seperti ini: «object» instanceof «class» ."

Ini memeriksa apakah suatu objek adalah turunan dari kelas tertentu. Ini lebih mudah daripada menjelaskannya. Lihatlah contoh ini:

Kode Keterangan
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
isInt akan benar . Objek yang direferensikan oleh variabel o adalah turunan dari kelas Integer .
Object o = "Mama";
boolean isInt = o instanceof Integer;
isInt akan salah . Objek yang direferensikan oleh variabel o bukanlah turunan dari kelas Integer . Ini adalah objek String .
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof FileInputStream;
isFIS akan benar . Objek yang direferensikan oleh variabel o adalah turunan dari kelas FileInputStream .

"Ya, itu sangat sederhana."

"Operator ini juga memperhitungkan warisan. Coba lihat."

Kode Keterangan
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
Di sini kita memiliki tiga deklarasi kelas: Animal, Cat, dan Tiger. Kucing mewarisi Hewan. Dan Tiger mewarisi Cat.
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  akan  benar .
isTiger  akan  benar .
isAnimal  akan  benar .
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  akan salah .
isTiger  akan  salah .
isAnimal  akan  benar .

Dan bahkan antarmuka:

Kode Keterangan
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
Buat dua kelas: Cat, TomCat, dan antarmuka Moveable
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  akan  benar .
isMoveable  akan  benar .
isTom  akan  benar .
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  akan  benar .
isMoveable  akan  salah .
isTom  akan  salah .

Operator instanceof terlihat seperti ini: a instanceof B .

Dengan kata lain, operator instanceof akan mengembalikan true jika:

1) variabel a menyimpan referensi ke objek tipe B

2)  variabel a menyimpan referensi ke objek yang kelasnya mewarisi  B

3)  variabel a menyimpan referensi ke objek yang mengimplementasikan antarmuka  B

Jika tidak, operator instanceof akan mengembalikan false .

"Mengerti. Jadi mengapa ini perlu, Paman Rishi?"

"Ellie akan memberitahumu tentang itu hari ini. Ini adalah operator yang sangat baik. Kamu akan yakin akan hal itu hari ini."