Šajā apmācībā jūs detalizēti uzzināsit par operatora Java instanceof, izmantojot piemērus.
instanceof
Java operators izmanto, lai pārbaudītu, vai objekts ir gadījums konkrētas klases vai nē.
Tās sintakse ir
objectName instanceOf className;
Lūk, ja objectName ir className gadījums, operators atgriežas true
. Pretējā gadījumā tas atgriežas false
.
Piemērs: 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); ) )
Rezultāts
nosaukums ir virknes: true obj gadījums ir Main: true
Iepriekš minētajā piemērā mēs esam izveidojuši String
Main klases tipa mainīgo nosaukumu un objekta obj klasi.
Šeit mēs izmantojām instanceof
operatoru, lai pārbaudītu, vai nosaukums un obj ir String
attiecīgi klases un Main klases gadījumi. Operators atgriežas true
abos gadījumos.
Piezīme : Java valodā String
tā ir klase, nevis primitīvs datu tips. Lai uzzinātu vairāk, apmeklējiet Java virkni.
Java instanceof mantojuma laikā
Mēs varam izmantot instanceof
operatoru, lai pārbaudītu, vai apakšklases objekti ir arī augstākās klases eksemplārs. Piemēram,
// 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 ) )
Iepriekš minētajā piemērā mēs esam izveidojuši apakšklases suni, kas manto no augstākās klases dzīvnieka. Mēs esam izveidojuši suņu klases objektu d1.
Ievietojiet izdrukas paziņojumā izteicienu,
d1 instanceof Animal
Šeit mēs izmantojam instanceof
operatoru, lai pārbaudītu, vai d1 ir arī augstākās klases dzīvnieka eksemplārs.
Java instanceof saskarnē
instanceof
Operators arī izmanto, lai pārbaudītu, vai objekts klases ir arī gadījums interfeisu, klases īsteno. Piemēram,
// 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 ) )
Iepriekš minētajā piemērā suņu klase īsteno dzīvnieku saskarni. Ievietojiet izdrukas paziņojumā izteicienu,
d1 instanceof Animal
Šeit d1 ir suņu klases eksemplārs. Par instanceof
Operators pārbauda, vai d1 ir arī gadījums interfeisa Dzīvnieku.
Piezīme : Java valodā visas klases tiek mantotas no Object
klases. Tātad visu klašu gadījumi ir arī Object
klases gadījumi.
Iepriekšējā piemērā, ja mēs pārbaudām,
d1 instanceof Object
Rezultāts būs true
.