Java instanceof (avec des exemples)

Dans ce didacticiel, vous découvrirez en détail l'opérateur instanceof Java à l'aide d'exemples.

L' instanceofopérateur en Java est utilisé pour vérifier si un objet est une instance d'une classe particulière ou non.

Sa syntaxe est

 objectName instanceOf className;

Ici, si objectName est une instance de className, l'opérateur retourne true. Sinon, il revient false.

Exemple: instance de Java

 class Main ( public static void main(String() args) ( // create a variable of string type String name = "Programiz"; // checks if name is instance of String boolean result1 = name instanceof String; System.out.println("name is an instance of String: " + result1); // create an object of Main Main obj = new Main(); // checks if obj is an instance of Main boolean result2 = obj instanceof Main; System.out.println("obj is an instance of Main: " + result2); ) )

Production

 name est une instance de String: true obj est une instance de Main: true

Dans l'exemple ci-dessus, nous avons créé un nom de variable du Stringtype et un objet obj de la classe Main.

Ici, nous avons utilisé l' instanceofopérateur pour vérifier si name et obj sont respectivement des instances de la Stringclasse et Main. Et, l'opérateur retourne truedans les deux cas.

Remarque : en Java, Stringest une classe plutôt qu'un type de données primitif. Pour en savoir plus, visitez Java String.

Instance Java pendant l'héritage

Nous pouvons utiliser l' instanceofopérateur pour vérifier si les objets de la sous-classe sont également une instance de la superclasse. Par exemple,

 // Java Program to check if an object of the subclass // is also an instance of the superclass // superclass class Animal ( ) // subclass class Dog extends Animal ( ) class Main ( public static void main(String() args) ( // create an object of the subclass Dog d1 = new Dog(); // checks if d1 is an instance of the subclass System.out.println(d1 instanceof Dog); // prints true // checks if d1 is an instance of the superclass System.out.println(d1 instanceof Animal); // prints true ) )

Dans l'exemple ci-dessus, nous avons créé une sous-classe Dog qui hérite de la superclasse Animal. Nous avons créé un objet d1 de la classe Dog.

À l'intérieur de l'instruction d'impression, notez l'expression,

 d1 instanceof Animal

Ici, nous utilisons l' instanceofopérateur pour vérifier si d1 est également une instance de la superclasse Animal.

Java instanceof dans l'interface

L' instanceofopérateur est également utilisé pour vérifier si un objet d'une classe est également une instance de l'interface implémentée par la classe. Par exemple,

 // Java program to check if an object of a class is also // an instance of the interface implemented by the class interface Animal ( ) class Dog implements Animal ( ) class Main ( public static void main(String() args) ( // create an object of the Dog class Dog d1 = new Dog(); // checks if the object of Dog // is also an instance of Animal System.out.println(d1 instanceof Animal); // returns true ) )

Dans l'exemple ci-dessus, la classe Dog implémente l'interface Animal. À l'intérieur de l'instruction d'impression, notez l'expression,

 d1 instanceof Animal

Ici, d1 est une instance de la classe Dog. L' instanceofopérateur vérifie si d1 est également une instance de l'interface Animal.

Remarque : en Java, toutes les classes sont héritées de la Objectclasse. Ainsi, les instances de toutes les classes sont également une instance de la Objectclasse.

Dans l'exemple précédent, si nous vérifions,

 d1 instanceof Object

Le résultat sera true.

Articles intéressants...