CodeGym /Kursus /Teras Java /instanceof operator

instanceof operator

Teras Java
Tahap , pelajaran
Tersedia

"Hello, Amigo! Anda telah pun bertemu dengan pengendali instanceof . Hari ini saya akan memberitahu anda bagaimana dan di mana ia boleh digunakan. instanceof ialah pengendali yang sangat mudah dan cekap."

"Itu bunyi seperti iklan!"

"Ia benar-benar sangat mudah. ​​Ia digunakan seperti ini: «objek» instanceof «class» ."

Ia menyemak sama ada objek adalah contoh kelas tertentu. Ia lebih mudah daripada menerangkannya. Lihat contoh ini:

Kod Penerangan
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
isInt akan menjadi benar . Objek yang dirujuk oleh pembolehubah o ialah contoh kelas Integer .
Object o = "Mama";
boolean isInt = o instanceof Integer;
isInt akan menjadi palsu . Objek yang dirujuk oleh pembolehubah o bukan contoh kelas Integer . Ia adalah objek String .
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof FileInputStream;
isFIS akan menjadi benar . Objek yang dirujuk oleh pembolehubah o ialah contoh kelas FileInputStream .

"Ya, itu sangat mudah."

"Pengendali ini juga mengambil kira warisan. Semak ia."

Kod Penerangan
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
Di sini kita mempunyai tiga pengisytiharan kelas: Haiwan, Kucing dan Harimau. Kucing mewarisi Haiwan. Dan Harimau mewarisi Kucing.
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  akan menjadi  benar .
isTiger  akan menjadi  benar .
isAnimal  akan menjadi  benar .
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  akan menjadi palsu .
isTiger  akan menjadi  palsu .
isAnimal  akan menjadi  benar .

Dan juga antara muka:

Kod Penerangan
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
Buat dua kelas: Cat, TomCat dan antara muka Boleh Alih
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  akan menjadi  benar .
isMoveable  akan menjadi  benar .
isTom  akan menjadi  benar .
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  akan menjadi  benar .
isMoveable  akan menjadi  palsu .
isTom  akan menjadi  palsu .

Operator instanceof kelihatan seperti ini: a instanceof B .

Dengan kata lain, pengendali instanceof akan kembali benar jika:

1) pembolehubah a menyimpan rujukan kepada objek jenis B

2)  pembolehubah a menyimpan rujukan kepada objek yang kelasnya mewarisi  B

3)  pembolehubah a menyimpan rujukan kepada objek yang melaksanakan antara muka  B

Jika tidak, pengendali instanceof akan mengembalikan false .

"Faham. Jadi kenapa ini perlu, Uncle Rishi?"

"Ellie akan memberitahu anda tentang perkara itu hari ini. Ini adalah pengendali yang sangat baik. Anda akan yakin hari ini."

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