Java instanceof (с примери)

В този урок ще научите подробно за Java instanceof оператора с помощта на примери.

Най- instanceofоператор в Java се използва за проверка дали даден обект е инстанция на даден клас или не.

Синтаксисът му е

 objectName instanceOf className;

Тук, ако objectName е екземпляр на className, операторът се връща true. В противен случай се връща false.

Пример: 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); ) )

Изход

 name е екземпляр на String: true obj е екземпляр на Main: true

В горния пример създадохме име на променлива от Stringтипа и обект obj от класа Main.

Тук използвахме instanceofоператора, за да проверим дали име и obj са съответно екземпляри на Stringкласа и Main. И операторът се връща и trueв двата случая.

Забележка : В Java Stringе клас, а не примитивен тип данни. За да научите повече, посетете Java String.

Java instanceof по време на наследяване

Можем да използваме instanceofоператора, за да проверим дали обектите на подкласа също са екземпляр на суперкласа. Например,

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

В горния пример създадохме подклас Dog, който наследява от суперкласа Animal. Създадохме обект d1 от класа Dog.

Вътре в изявлението за печат забележете израза,

 d1 instanceof Animal

Тук използваме instanceofоператора, за да проверим дали d1 също е екземпляр на суперкласа Animal.

Java instanceof в Interface

На instanceofоператора се използва и да се провери дали даден обект от клас също е модел на интерфейса изпълнява от този клас. Например,

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

В горния пример класът Dog изпълнява интерфейса Animal. Вътре в изявлението за печат забележете израза,

 d1 instanceof Animal

Тук d1 е екземпляр на клас Dog. На instanceofпроверки оператор, ако d1 е случай на животното интерфейс.

Забележка : В Java всички класове се наследяват от Objectкласа. Така че екземплярите на всички класове също са екземпляр на Objectкласа.

В предишния пример, ако проверим,

 d1 instanceof Object

Резултатът ще бъде true.

Интересни статии...