In deze tutorial leert u met behulp van voorbeelden in detail over de Java-instanceof-operator.
De instanceof
operator in Java wordt gebruikt om te controleren of een object een instantie van een bepaalde klasse is of niet.
De syntaxis is
objectName instanceOf className;
Hier, als objectName een instantie is van className, retourneert de operator true
. Anders keert het terug false
.
Voorbeeld: 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); ) )
Uitvoer
name is een instantie van String: true obj is een instantie van Main: true
In het bovenstaande voorbeeld hebben we een variabelenaam gemaakt van het String
type en een objectobj van de klasse Main.
Hier hebben we de instanceof
operator gebruikt om te controleren of name en obj instanties zijn van String
respectievelijk de klasse en de klasse Main. En de operator keert true
in beide gevallen terug.
Opmerking : in Java String
is dit een klasse in plaats van een primitief gegevenstype. Bezoek Java String voor meer informatie.
Java-instantie van tijdens overerving
We kunnen de instanceof
operator gebruiken om te controleren of objecten van de subklasse ook een instantie van de superklasse zijn. Bijvoorbeeld,
// 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 ) )
In het bovenstaande voorbeeld hebben we een subklasse Dog gemaakt die erft van de superklasse Animal. We hebben een object d1 van de klasse Dog gemaakt.
Let in de printopdracht op de uitdrukking,
d1 instanceof Animal
Hier gebruiken we de instanceof
operator om te controleren of d1 ook een instantie is van de superklasse Animal.
Java-instantie van in Interface
De instanceof
operator wordt ook gebruikt om te controleren of een object van een klasse ook een instantie is van de interface die door de klasse is geïmplementeerd. Bijvoorbeeld,
// 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 ) )
In het bovenstaande voorbeeld implementeert de klasse Dog de interface Animal. Let in de printopdracht op de uitdrukking,
d1 instanceof Animal
Hier is d1 een instantie van de klasse Dog. De instanceof
operator controleert of d1 ook een instantie is van de interface Animal.
Opmerking : in Java worden alle klassen overgenomen van de Object
klasse. Instanties van alle klassen zijn dus ook een instantie van de Object
klasse.
Als we in het vorige voorbeeld controleren,
d1 instanceof Object
Het resultaat zal zijn true
.