"Здравей, Амиго! Вече се запознахте с оператора instanceof . Днес ще ви кажа How и къде може да се използва. instanceof е много прост и ефективен оператор."
„Това звучи като реклама!“
„Наистина е много просто. Използва се така: «обект» екземпляр на «клас» .»
Той проверява дали даден обект е екземпляр от определен клас. По-лесно е, отколкото да го обясниш. Вижте този пример:
Код | Описание |
---|---|
|
isInt ще бъде вярно . Обектът, към който се отнася променливата o, е екземпляр на класа Integer . |
|
isInt ще бъде невярно . Обектът, към който се отнася променливата o, не е екземпляр на класа Integer . Това е String обект. |
|
isFIS ще бъде вярно . Обектът, към който се отнася променливата o, е екземпляр на класа FileInputStream . |
— Да, това е много просто.
„Този оператор отчита и наследяването. Вижте го.“
Код | Описание |
---|---|
|
Тук имаме три декларации за клас: Animal, Cat и Tiger. Котката наследява Животното. И Тигър наследява Котка. |
|
isCat ще бъде вярно . isTiger ще бъде вярно . isAnimal ще бъде вярно . |
|
isCat ще бъде невярно . isTiger ще бъде false . isAnimal ще бъде вярно . |
И дори интерфейси:
Код | Описание |
---|---|
|
Създайте два класа: Cat, TomCat и интерфейса Moveable |
|
isCat ще бъде вярно . isMoveable ще бъде true . isTom ще бъде вярно . |
|
isCat ще бъде вярно . isMoveable ще бъде невярно . isTom ще бъде false . |
Операторът instanceof изглежда така : instanceof B .
С други думи, операторът instanceof ще върне true , ако:
1) променлива a съхранява препратка към обект от тип B
2) променлива a съхранява препратка към обект, чийто клас наследява B
3) променлива a съхранява препратка към обект, който имплементира интерфейс B
В противен случай операторът instanceof ще върне false .
„Разбрах. Тогава защо е необходимо това, чичо Риши?“
„Ели ще ви разкаже за това днес. Това е наистина добър оператор. Ще се убедите в това днес.“
GO TO FULL VERSION