Tässä opetusohjelmassa opit operaattorin Java instanceofista yksityiskohtaisesti esimerkkien avulla.
instanceof
Operaattori Java käytetään tarkistamaan, onko objekti on esimerkki tietylle vai ei.
Sen syntaksia on
objectName instanceOf className;
Jos objectName on className-esiintymä, operaattori palaa true
. Muuten se palaa false
.
Esimerkki: 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); ) )
Tuotos
nimi on String: true -objekti on esimerkki Main: true
Yllä olevassa esimerkissä olemme luoneet String
tyypin muuttujan nimen ja Main-luokan objektin objektin.
Tässä olemme käyttäneet instanceof
operaattoria tarkistaaksemme, ovatko nimi ja obj String
vastaavasti Main- ja Main-luokan esiintymät . Ja käyttäjä palaa true
molemmissa tapauksissa.
Huomautus : Java-ohjelmassa String
se on luokka eikä primitiivinen tietotyyppi. Lisätietoja on Java String -sivulla.
Java-instanssi perinnön aikana
Voimme käyttää instanceof
operaattoria tarkistaaksemme, ovatko alaluokan objektit myös yliluokan esiintymiä. Esimerkiksi,
// 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 ) )
Yllä olevassa esimerkissä olemme luoneet alaluokan koiran, joka perii superluokan eläimestä. Olemme luoneet koiraluokan objektin d1.
Huomaa tulosteen sisällä lauseke,
d1 instanceof Animal
Tässä käytämme instanceof
operaattoria tarkistaaksemme, onko d1 myös superluokan eläimen esiintymä.
Java-ilmentymä käyttöliittymässä
instanceof
Operaattori käytetään myös tarkistaa, onko kohde luokan on myös esimerkki rajapinnan toteuttaa luokan. Esimerkiksi,
// 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 ) )
Yllä olevassa esimerkissä koiraluokka toteuttaa eläinten käyttöliittymän. Huomaa tulosteen sisällä lauseke,
d1 instanceof Animal
Tässä d1 on koiraluokan esiintymä. instanceof
Operaattori tarkistaa, onko d1 on myös esimerkki käyttöliittymän Animal.
Huomaa : Java-ohjelmassa kaikki luokat peritään Object
luokasta. Joten kaikkien luokkien esiintymät ovat myös Object
luokan esiintymiä .
Jos edellisessä esimerkissä tarkistamme,
d1 instanceof Object
Tulos on true
.