— 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 |
|---|---|
|
isInt truega teng bo'ladi. o o'zgaruvchisi ishora qilayotgan ob'ekt Integer sinfining ob'ekti. |
|
isInt falsega teng bo'ladi. o o'zgaruvchisi ishora qilayotgan ob'ekt Integer sinfining ob'ekti emas, u String sinfining ob'ekti. |
|
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 |
|---|---|
|
Bu yerda biz uchta sinfni e'lon qilmoqdamiz: hayvon, mushuk va yo'lbars. Mushuk Hayvondan meros oladi. Va Yo'lbars Mushukdan meros oladi. |
|
isCat truega teng bo'ladi. isTiger truega teng bo'ladi. isAnimal truega teng bo'ladi. |
|
isCat falsega teng bo'ladi. isTiger falsega teng bo'ladi. isAnimal truega teng bo'ladi. |
Va hatto interfeyslar:
| Kod | Tavsif |
|---|---|
|
Ikki sinf yaratamiz: Cat, TomCat va Moveable interfeysi |
|
isCat truega teng bo'ladi. isMoveable truega teng bo'ladi. isTom truega teng bo'ladi. |
|
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.
GO TO FULL VERSION