Java instanceof (s príkladmi)

V tomto výučbe sa pomocou príkladov dozviete podrobne operátor inštancie Java.

instanceofOperátor v Jave slúži ku kontrole, či je objekt inštanciou špecifické triedy, alebo nie.

Jeho syntax je

 objectName instanceOf className;

Ak je objectName inštanciou className, vráti sa operátor true. V opačnom prípade sa vráti false.

Príklad: 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); ) )

Výkon

 name je inštancia String: true obj je inštancia Main: true

Vo vyššie uvedenom príklade sme vytvorili názov premennej Stringtypu a objekt obj triedy Main.

Tu sme pomocou instanceofoperátora skontrolovali, či name a obj sú inštanciami Stringtriedy Main a respektíve Main. A operátor sa vráti truev obidvoch prípadoch.

Poznámka : V Jave Stringje to skôr trieda ako primitívny údajový typ. Ak sa chcete dozvedieť viac, navštívte stránku Java String.

Inštancia Java počas dedenia

Pomocou instanceofoperátora môžeme skontrolovať, či sú objekty podtriedy tiež inštanciou nadtriedy. Napríklad,

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

Vo vyššie uvedenom príklade sme vytvorili podtriedu Dog, ktorá dedí z nadtriedy Animal. Vytvorili sme objekt d1 triedy Dog.

Vo vnútri tlačového vyhlásenia si všimnite výraz,

 d1 instanceof Animal

Tu používame instanceofoperátor na kontrolu, či d1 je tiež inštanciou nadtriedy Animal.

Java instanceof v rozhraní

instanceofOperátor sa tiež používa na kontrolu, či je inštancia rozhranie implementované triedou objekt triedy. Napríklad,

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

Vo vyššie uvedenom príklade trieda Dog implementuje rozhranie Animal. Vo vnútri tlačového vyhlásenia si všimnite výraz,

 d1 instanceof Animal

Tu je d1 inštanciou triedy Dog. Tieto instanceofkontroly operátorov, ak d1 je tiež inštancií Animal rozhranie.

Poznámka : V prostredí Java sa všetky triedy dedia z Objecttriedy. Takže inštancie všetkých tried sú tiež inštanciami Objecttriedy.

V predchádzajúcom príklade, ak začiarkneme,

 d1 instanceof Object

Výsledok bude true.

Zaujímavé články...