В този урок ще научите подробно за 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
.