InstanceOf en Java - Fonctionnement et règles d'instanceOf en Java avec exemple

Table des matières:

Anonim

Introduction à instanceOf en Java

instanceOf est une classe de langage de programmation Java qui, lorsqu'elle est appelée, renvoie une valeur booléenne et est utilisée pour examiner la relation entre l'objet et une classe / interface. En raison de sa capacité à comparer ces deux, il est également connu comme «opérateur de comparaison de type». Simplement, instanceOf est utilisé pour vérifier si un objet est de n'importe quel type, et il retourne une valeur booléenne qui est soit vraie soit fausse. InstanceOf est l'un des opérateurs utiles en java, qui permet d'obtenir des informations utiles sur un objet, dans un environnement d'exécution.

Syntaxe:

La classe instanceOf est utilisée pour vérifier si l'objet appartient à une classe ou non.

obj instanceOf object

Ci-dessus se trouve la syntaxe standard pour la classe instanceOf. Ici, l'obj est le nom de l'objet qui doit avoir été créé précédemment (référence). instanceOf est le mot-clé et l'objet est la classe ou l'interface avec laquelle nous faisons correspondre l'objet obj.

Dans divers cas, instanceOf peut s'avérer être d'une utilité majeure, comme lorsque nous avons une collection d'objets et que vous n'êtes pas sûr de l'objet auquel il se réfère. Un exemple d'un tel cas peut être un formulaire simple avec de nombreux contrôles.

De plus, si dans le cas où nous utilisons instanceOf avec une variable qui a une valeur NULL, il est sûr de retourner false.

Comment fonctionne instanceOf?

L'opérateur instanceOf en java fonctionne sur une simple relation is-a. En déclarant simplement, is-a relation est un concept orienté objet, où nous comparons ou disons, travaillons sur une relation entre des abstractions, où la classe A est une sous-classe de la classe B.C'est-une relation totalement basée sur l'héritage. En d'autres termes, c'est comme dire, "X est de type Y".

Maintenant, comprenons le fonctionnement de instanceOf, ainsi que le code respectif.

Tout d'abord, nous allons créer une classe nommée Parent.

Code:

Class Parent(
)
Then let's add a simple main class.
public static void main(String args()) (
)

Nous allons ensuite créer une instance de notre classe Parent.

Parent child = new Parent();

Enfin, nous utiliserons l'opérateur instanceOf pour vérifier la relation entre l'enfant et le parent. Ce qui va comme ceci: enfant instanceOf Parent

Maintenant, comme mentionné précédemment, la syntaxe pour instanceOf va d'un objet à vérifier, puis du mot-clé instanceOf et ensuite de la classe / interface avec laquelle l'objet donné doit être testé.

À tout moment où nous rencontrons le mot-clé «étend» ou «implémente», dans une déclaration de classe, c'est un signe clair que c'est une relation qui est utilisée.

Exemples d'instanceOf en Java

L'exemple suivant illustre l'utilisation d'une seule ligne d'instanceOf.

Class instanceof_java(
public static void main(String args()) (
instanceof_java s = new instanceof_java();
System.out.println(s instanceOf instanceof_java);
)
)

Interprétation du code: commencé par créer une classe simple instanceof_java. Dans la classe instanceof_java, nous avons notre classe principale et dans notre classe principale, nous avons créé un objet. Cet objet s est de type instanceof_java. Ensuite, pour implémenter le fonctionnement de instanceOf, nous avons fourni une instruction de sortie avec l'objet s. Dans la dernière ligne, nous avons passé s avec le mot-clé instanceof et la classe parent. Lors de l'exécution, le code retournera «true», car l'objet s est de type instanceof.

En allant plus loin, si nous avons un objet de notre classe ou interface connue mais que nous n'avons attribué aucune valeur au même objet, il est obligé de retourner false, même s'il est de la même classe.

Class instanceof_sample(
public static void main(String args()) (
instanceof_sample new = null;
System.out.println(new instanceOf instanceof_sample);
)
)

Ici, nous avons un code similaire à celui de l'exemple précédent, mais avec un objet de valeur nulle. Une fois exécuté, ce code retournera faux. Comme nous pouvons le voir, object new est l'instance de instanceof_sample, mais new est affecté avec une valeur nulle, qui renvoie false.

Règles pour instanceOf Operator

Selon que l'objet ref n'est pas null, et une instance du type référencé. Lorsque X est la classe simple de l'objet référencé et Y est la classe résolue ou un tableau d'un type d'interface.

  • Lorsque X est une classe simple, alors:
  • Si Y est un type de classe, alors le X doit être une sous-classe de Y ou X doit être de la même classe que Y.
  • Si Y est un type d'interface, la classe X doit implémenter l'interface T.
  • Lorsque X est une interface de type, alors:
  • Si Y est un type de classe, alors le Y doit être un objet.
  • Y peut être la même que l'interface que X ou la super interface de X si Y est un type d'interface.
  • Si X est une classe, qui représente le type de tableau SC (), qui est un tableau de composants de type SC, alors:
  • Si Y est un type de classe, alors Y doit être un objet.
  • Si Y est un type d'interface, alors Y doit être de type d'interface implémenté par des tableaux.

Enfin, nous allons démontrer un programme instanceOf pour comprendre que l'objet parent ne peut pas être une instance de la classe enfant.

Programme

class Subject ( )
class Topic extends Subject ( )
class instanceof_java
(
public static void main(String() args)
(
Subject history = new Subject ();
if (history instanceof Topic)
System.out.println("history is instance of Topic");
else
System.out.println("history is NOT instance of Topic");
)
)

Interprétation du code: Afin de comprendre l'opérateur instanceOf dans différents scénarios, nous avons écrit le code ci-dessus. Nous avons créé un sujet de classe simple, puis un autre sujet de classe, qui étend le sujet de classe, ce qui rend le sujet de classe enfant et le sujet de classe parent ici. Puis une autre classe avec la méthode principale. Dans la méthode principale, nous avons créé une nouvelle instance de la classe parent Subject. Dans la boucle IF ELSE, nous avons vérifié la condition de l'objet instance avec la classe parent Subject. Si la condition était remplie, elle renverrait «l'historique est une instance de sujet» et «l'historique n'est PAS une instance de sujet» si la condition échoue.

Lors de l'exécution du code ci-dessus, la sortie sera «l'historique n'est PAS une instance de rubrique», ce qui signifie que la condition passée dans IF échoue. Cela s'est produit parce que nous avons essayé de vérifier le parent de «l'historique» de l'objet avec la classe Topic. Nous savons que la classe Topic étend la classe Subject, ce qui signifie que Topic est une sous-classe de Subject. Et lorsque nous avons essayé de vérifier le type d'historique avec la classe Topic, il renvoie false (NOT). Cela signifie que l'objet parent ne peut pas être une instance d'une classe.

Production:

Conclusion - instanceOf en Java

Nous avons découvert la classe instanceOf en Java, qui décide simplement si l'objet est du type donné. Nous avons compris l'impact de la relation is-a sur l'opérateur instanceOf. Également connu sous le nom d'opérateur de comparaison, instanceOf est basé sur l'héritage.

Articles recommandés

Cela a été un guide pour InstanceOf en Java. Ici, nous discutons du fonctionnement d'InstanceOf en Java, des règles avec interprétation de code. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Mots-clés Java
  2. Annotations Java
  3. Aide-mémoire JavaScript
  4. Mots-clés PHP