"Hej, Amigo! Du har allerede mødt operatørens instance . I dag vil jeg fortælle dig, hvordan og hvor den kan bruges. instanceof er en meget enkel og effektiv operatør."
"Det lyder som en annonce!"
"Det er virkelig meget enkelt. Det bruges sådan her: «objekt»-forekomst af «klasse» ."
Den kontrollerer, om et objekt er en instans af en bestemt klasse. Det er nemmere end at forklare det. Se på dette eksempel:
Kode | Beskrivelse |
---|---|
|
isInt vil være sandt . Objektet, der refereres til af variablen o, er en forekomst af Integer- klassen. |
|
isInt vil være falsk . Objektet, der refereres til af variablen o, er ikke en forekomst af Integer- klassen. Det er et String- objekt. |
|
isFIS vil være sandt . Objektet, der refereres til af variablen o, er en forekomst af klassen FileInputStream . |
"Ja, det er meget enkelt."
"Denne operatør står også for arv. Tjek det ud."
Kode | Beskrivelse |
---|---|
|
Her har vi tre klasseerklæringer: Dyr, Kat og Tiger. Kat arver dyr. Og Tiger arver kat. |
|
isCat vil være sandt . isTiger vil være sandt . isAnimal vil være sandt . |
|
isCat vil være falsk . isTiger vil være falsk . isAnimal vil være sandt . |
Og endda grænseflader:
Kode | Beskrivelse |
---|---|
|
Opret to klasser: Cat, TomCat og Moveable-grænsefladen |
|
isCat vil være sandt . isMoveable vil være sandt . isTom vil være sandt . |
|
isCat vil være sandt . isMoveable vil være falsk . isTom vil være falsk . |
Instanceof-operatoren ser sådan ud: en instans af B .
Med andre ord vil instansen af operatoren returnere sand , hvis:
1) variabel a gemmer en reference til et objekt af type B
2) variabel a gemmer en reference til et objekt, hvis klasse arver B
3) variabel a gemmer en reference til et objekt, der implementerer grænseflade B
Ellers vil instansen af operatøren returnere false .
"Forstår det. Så hvorfor er det nødvendigt, onkel Rishi?"
"Ellie vil fortælle dig om det i dag. Det er en rigtig god operatør. Det vil du være overbevist om i dag."
GO TO FULL VERSION