"Hei, Amigo! Du har allerede møtt operatørens instance . I dag skal jeg fortelle deg hvordan og hvor den kan brukes. instanceof er en veldig enkel og effektiv operatør."

"Det høres ut som en annonse!"

"Det er egentlig veldig enkelt. Det brukes slik: «objekt»-forekomst av «klasse» ."

Den sjekker om et objekt er en forekomst av en bestemt klasse. Det er lettere enn å forklare det. Se på dette eksemplet:

Kode Beskrivelse
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
isInt vil være sant . Objektet referert til av variabelen o er en forekomst av Integer- klassen.
Object o = "Mama";
boolean isInt = o instanceof Integer;
isInt vil være falsk . Objektet referert til av variabelen o er ikke en forekomst av Integer- klassen. Det er et String- objekt.
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof FileInputStream;
isFIS vil være sant . Objektet referert til av variabelen o er en forekomst av FileInputStream -klassen.

"Ja, det er veldig enkelt."

"Denne operatøren står også for arv. Sjekk det ut."

Kode Beskrivelse
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
Her har vi tre klasseerklæringer: Dyr, Katt og Tiger. Katt arver dyr. Og Tiger arver Cat.
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  vil være  sant .
isTiger  vil være  sant .
isAnimal  vil være  sant .
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  vil være falsk .
isTiger  vil være  falsk .
isAnimal  vil være  sant .

Og til og med grensesnitt:

Kode Beskrivelse
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
Lag to klasser: Cat, TomCat og Moveable-grensesnittet
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  vil være  sant .
isMoveable  vil være  sant .
isTom  vil være  sann .
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  vil være  sant .
isMoveable  vil være  falsk .
isTom  vil være  falsk .

Forekomsten av operatoren ser slik ut: en forekomst av B .

Med andre ord vil instansen av operatøren returnere sann hvis:

1) variabel a lagrer en referanse til et objekt av type B

2)  variabel a lagrer en referanse til et objekt hvis klasse arver  B

3)  variabel a lagrer en referanse til et objekt som implementerer grensesnitt  B

Ellers vil instansen av operatøren returnere false .

"Skjønner det. Så hvorfor er dette nødvendig, onkel Rishi?"

"Ellie skal fortelle deg om det i dag. Dette er en veldig hyggelig operatør. Det vil du være overbevist om i dag."