V tej vadnici boste s pomočjo primerov podrobno spoznali operater Java instanceof.
instanceof
Operater 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 String
tipa in objekt obj razreda Main.
Tu smo z instanceof
operatorjem preverili, ali sta name in obj primerka String
razreda oziroma Main. In, operater se vrne true
v obeh primerih.
Opomba : V Javi String
je razred in ne primitiven podatkovni tip. Če želite izvedeti več, obiščite Java String.
Primerek Java med dedovanjem
Z instanceof
operatorjem 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 instanceof
operator, da preverimo, ali je d1 tudi primerek superklase Animal.
Primerek Java v vmesniku
instanceof
Operater 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 instanceof
samem operaterja, če je d1 tudi primerek vmesnika živali.
Opomba : V Javi so vsi razredi podedovani od Object
razreda. Primerki vseh razredov so torej tudi primer Object
razreda.
Če v prejšnjem primeru preverimo,
d1 instanceof Object
Rezultat bo true
.