Java instanceof (con esempi)

In questo tutorial imparerai a conoscere in dettaglio l'istanza dell'operatore Java con l'aiuto di esempi.

L' instanceofoperatore in Java viene utilizzato per verificare se un oggetto è un'istanza di una particolare classe o meno.

La sua sintassi è

 objectName instanceOf className;

Qui, se objectName è un'istanza di className, l'operatore restituisce true. Altrimenti, ritorna false.

Esempio: Java instanceof

 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); ) )

Produzione

 name è un'istanza di String: true obj è un'istanza di Main: true

Nell'esempio sopra, abbiamo creato un nome di variabile del Stringtipo e un oggetto obj della classe Main.

Qui abbiamo usato l' instanceofoperatore per verificare se name e obj sono rispettivamente istanze della Stringclasse e Main. E l'operatore ritorna truein entrambi i casi.

Nota : in Java, Stringè una classe piuttosto che un tipo di dati primitivo. Per saperne di più, visita Java String.

Istanza Java durante l'ereditarietà

Possiamo usare l' instanceofoperatore per verificare se gli oggetti della sottoclasse sono anche un'istanza della superclasse. Per esempio,

 // 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 ) )

Nell'esempio sopra, abbiamo creato una sottoclasse Dog che eredita dalla superclasse Animal. Abbiamo creato un oggetto d1 della classe Dog.

All'interno della dichiarazione di stampa, nota l'espressione,

 d1 instanceof Animal

Qui stiamo usando l' instanceofoperatore per verificare se d1 è anche un'istanza della superclasse Animal.

Istanza Java in Interface

L' instanceofoperatore viene utilizzato anche per verificare se un oggetto di una classe è anche un'istanza dell'interfaccia implementata dalla classe. Per esempio,

 // 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 ) )

Nell'esempio precedente, la classe Dog implementa l'interfaccia Animal. All'interno della dichiarazione di stampa, nota l'espressione,

 d1 instanceof Animal

Qui, d1 è un'istanza della classe Dog. L' instanceofoperatore verifica se d1 è anche un'istanza dell'interfaccia Animal.

Nota : in Java, tutte le classi vengono ereditate dalla Objectclasse. Quindi, anche le istanze di tutte le classi sono un'istanza della Objectclasse.

Nell'esempio precedente, se controlliamo,

 d1 instanceof Object

Il risultato sarà true.

Articoli interessanti...