« Bonjour, Amigo ! Tu as déjà rencontré l'opérateur instanceof. Aujourd'hui, je vais te dire comment et où il peut être utilisé. instanceof est un opérateur très simple et efficace. »
« On croirait que tu essaies de me le vendre ! »
« C'est vraiment très simple. On l'utilise comme ceci : 'objet' instanceof 'classe'. »
Il vérifie si un objet est une instance d'une classe particulière. C'est plus facile que l'explication peut le laisser penser. Regarde cet exemple :
Code | Description |
---|---|
|
isInt aura la valeur true. L'objet référencé par la variable o est une instance de la classe Integer. |
|
isInt aura la valeur false. L'objet référencé par la variable o n'est pas une instance de la classe Integer. C'est un objet String. |
|
isFIS aura la valeur true. L'objet référencé par la variable o est une instance de la classe FileInputStream. |
« Oui, c'est très simple. »
« Cet opérateur tient également compte de l'héritage. Regarde un peu. »
Code | Description |
---|---|
|
Ici, nous avons trois déclarations de classe : Animal, Cat et Tiger. Cat hérite d'Animal. Et Tiger hérite de Cat. |
|
isCat aura la valeur true. isTiger aura la valeur true. isAnimal aura la valeur true. |
|
isCat aura la valeur false. isTiger aura la valeur false. isAnimal aura la valeur true. |
Et même les interfaces :
Code | Description |
---|---|
|
Création de deux classes : Cat, TomCat et de l'interface Moveable |
|
isCat aura la valeur true. isMoveable aura la valeur true. isTom aura la valeur true. |
|
isCat aura la valeur true. isMoveable aura la valeur false. isTom aura la valeur false. |
L'opérateur instanceof ressemble à ceci : a instanceof B.
En d'autres termes, l'opérateur instanceof renverra true si :
1) la variable a stocke une référence à un objet de type B
2) la variable a stocke une référence à un objet dont la classe hérite de B
3) la variable a stocke une référence à un objet qui implémente l'interface B
Sinon, l'opérateur instanceof renvoie false.
« J'ai compris. Mais pourquoi est-ce nécessaire, tonton Rishi ? »
« Ellie t'expliquera tout à ce sujet aujourd'hui. C'est vraiment un opérateur très commode. Tu en seras pleinement convaincu aujourd'hui. »
GO TO FULL VERSION