Java instanceof (z primeri)

V tej vadnici boste s pomočjo primerov podrobno spoznali operater Java instanceof.

instanceofOperater v Java se uporablja za preverjanje, ali je predmet primerek posameznega razreda ali ne.

Njegova skladnja je

 objectName instanceOf className;

Če je objectName primerek className, se operater vrne true. V nasprotnem primeru se vrne false.

Primer: primerek 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); ) )

Izhod

 name je primerek String: true obj je primerek Main: true

V zgornjem primeru smo ustvarili ime spremenljivke Stringtipa in objekt obj razreda Main.

Tu smo z instanceofoperatorjem preverili, ali sta name in obj primerka Stringrazreda oziroma Main. In, operater se vrne truev obeh primerih.

Opomba : V Javi Stringje razred in ne primitiven podatkovni tip. Če želite izvedeti več, obiščite Java String.

Primerek Java med dedovanjem

Z instanceofoperatorjem lahko preverimo, ali so predmeti podrazreda tudi primerek nadrazreda. Na primer

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

V zgornjem primeru smo ustvarili podrazred Pes, ki podeduje iz superrazreda Žival. Ustvarili smo objekt d1 razreda Dog.

V izjavi za tisk opazite izraz,

 d1 instanceof Animal

Tu uporabljamo instanceofoperator, da preverimo, ali je d1 tudi primerek superklase Animal.

Primerek Java v vmesniku

instanceofOperater se uporablja tudi za preverjanje, ali je objekt razreda tudi primerek vmesnika z razredom izvaja. Na primer

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

V zgornjem primeru razred Dog izvaja vmesnik Animal. V izjavi za tisk opazite izraz,

 d1 instanceof Animal

Tu je d1 primer razreda Dog. V instanceofsamem operaterja, če je d1 tudi primerek vmesnika živali.

Opomba : V Javi so vsi razredi podedovani od Objectrazreda. Primerki vseh razredov so torej tudi primer Objectrazreda.

Če v prejšnjem primeru preverimo,

 d1 instanceof Object

Rezultat bo true.

Zanimive Članki...