— Привіт, Аміго! Раніше ти вже познайомився з оператором instanceof. Сьогодні я розповім тобі, як і де його можна використати. instanceof – це дуже простий та ефективний у використанні оператор.
— Звучить як реклама!
— Він і справді дуже простий. Він використовується у такому вигляді: «об'єкт» instanceof «клас».
Він перевіряє, чи є об'єктом певного класу. Все ще простіше, ніж я говорю. Дивись приклад:
Код | Опис |
---|---|
|
isInt буде дорівнювати true. Об'єкт, на який посилається змінна o, є об'єктом класу Integer. |
|
isInt буде дорівнювати false. Об'єкт, який посилається змінна o, не є об'єктом класу Integer, він є об'єктом класу String. |
|
isFIS буде дорівнювати true. Об'єкт, на який посилається змінна is, є об'єктом класу FileInputStream. |
— Так, дуже просто.
— Цей оператор враховує і спадкування. Ось дивись.
Код | Опис |
---|---|
|
Тут бачимо три оголошених класи: тварина, кіт і тигр. Кіт успадковується від Тварини. А Тигр від Кота. |
|
isCat буде дорівнювати true. isTiger буде дорівнювати true. isAnimal буде дорівнювати true. |
|
isCat буде дорівнювати false. isTiger буде дорівнювати false. isAnimal буде дорівнювати true. |
І навіть інтерфейси:
Код | Опис |
---|---|
|
Створимо два класи: Cat, TomCat та інтерфейс Moveable |
|
isCat буде дорівнювати true. isMoveable буде дорівнювати true. isTom буде дорівнювати true. |
|
isCat буде дорівнювати true. isMoveable буде дорівнювати false. isTom буде дорівнювати false. |
Оператор instanceof має вигляд: a instanceof B.
Іншими словами, оператор instanceof поверне значення true, якщо:
1) змінна а зберігає посилання на об'єкт типу B
2) змінна a зберігає посилання на об'єкт, клас якого успадкований від B
3) змінна а зберігає посилання на об'єкт, що реалізує інтерфейс B
Інакше оператор instanceof поверне значення false.
— Зрозуміло. А навіщо це потрібно?
— Про це сьогодні ти дізнаєшся далі. Це дуже добрий оператор. Сьогодні ти в цьому переконаєшся.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ