instanceof operatori

All lectures for UZ purposes
Daraja, Dars
Mavjud

— Salom, Amigo! Sen allaqachon instanceof operatori bilan tanishgansan. Bugun men senga uni qanday va qaerda ishlatishni aytib beraman. instanceof – juda oddiy va samarali operator.

— Reklama kabi eshitilyapti!

— Haqiqatan ham juda oddiy. U quyidagi ko'rinishda ishlatiladi: «ob'ekt» instanceof «klass».

U ob'ekt muayyan sinfning ob'ekti ekanligini tekshiradi. Men aytganimdan ham oson. Mana misol:

Kod Tavsif
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
isInt truega teng bo'ladi. o o'zgaruvchisi ishora qilayotgan ob'ekt Integer sinfining ob'ekti.
Object o = "Mama";
boolean isInt = o instanceof Integer;
isInt falsega teng bo'ladi. o o'zgaruvchisi ishora qilayotgan ob'ekt Integer sinfining ob'ekti emas, u String sinfining ob'ekti.
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof
FileInputStream;
isFIS truega teng bo'ladi. is o'zgaruvchisi ishora qilayotgan ob'ekt FileInputStream sinfining ob'ekti.

— Ha, juda oddiy.

— Bu operator meros olishni ham hisobga oladi. Mana qarang.

Kod Tavsif
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
Bu yerda biz uchta sinfni e'lon qilmoqdamiz: hayvon, mushuk va yo'lbars. Mushuk Hayvondan meros oladi. Va Yo'lbars Mushukdan meros oladi.
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat truega teng bo'ladi.
isTiger truega teng bo'ladi.
isAnimal truega teng bo'ladi.
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat falsega teng bo'ladi.
isTiger falsega teng bo'ladi.
isAnimal truega teng bo'ladi.

Va hatto interfeyslar:

Kod Tavsif
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
Ikki sinf yaratamiz: Cat, TomCat va Moveable interfeysi
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat truega teng bo'ladi.
isMoveable truega teng bo'ladi.
isTom truega teng bo'ladi.
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat truega teng bo'ladi.
isMoveable falsega teng bo'ladi.
isTom falsega teng bo'ladi.

instanceof operatori quyidagi ko'rinishda: a instanceof B.

Boshqacha qilib aytganda, instanceof operatori true qiymatini qaytaradi, agar:

1) o'zgaruvchi a B tipidagi ob'ektga ishora qilsa

2) o'zgaruvchi a klassi B dan meros olgan ob'ektga ishora qilsa

3) o'zgaruvchi a B interfeysini amalga oshiruvchi ob'ektga ishora qilsa

Aks holda operator instanceof false qiymatini qaytaradi.

— Tushunarli. Bu nima uchun kerak, amaki Risha?

— Bugun Ellie senga bu haqda aytib beradi. Bu juda yaxshi operator. Bugun sen bunga amin bo'lasan.

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