„Hallo Amigo! Du hast bereits den Operator instanceof kennengelernt. Heute werde ich dir sagen, wie und wo er eingesetzt werden kann. instanceof ist ein sehr einfacher und effizienter Operator.“
„Das klingt aber sehr nach Werbung!“
„Er ist wirklich sehr einfach. Er wird so verwendet: ‚Objekt‘ instanceof ‚Klasse‘.“
Er prüft, ob ein Objekt eine Instanz einer bestimmten Klasse ist. Das ist einfacher als es zu erklären. Sieh dir dieses Beispiel an:
Code | Beschreibung |
---|---|
|
isInt wird true. Das Objekt, das durch die Variable o referenziert wird, ist eine Instanz der Integer-Klasse. |
|
isInt wird false. Das Objekt, das durch die Variable o referenziert wird, ist keine Instanz der Integer-Klasse. Es ist ein String-Objekt. |
|
isFIS wird true. Das Objekt, das durch die Variable o referenziert wird, ist eine Instanz der FileInputStream-Klasse. |
„Ja, das ist sehr einfach.“
„Dieser Operator berücksichtigt auch die Vererbung. Sieh es dir an.“
Code | Beschreibung |
---|---|
|
Hier haben wir drei Klassendeklarationen: Animal, Cat und Tiger. Cat erbt von Animal. Und Tiger erbt von Cat. |
|
isCat wird true. isTiger wird true. isAnimal wird true. |
|
isCat wird false. isTiger wird false. isAnimal wird true. |
Und sogar Interfaces:
Code | Beschreibung |
---|---|
|
Lege zwei Klassen an: Cat, TomCat und das Moveable-Schnittstelle |
|
isCat wird true. isMoveable wird true. isTom wird true. |
|
isCat wird true. isMoveable wird false. isTom wird false. |
Der instanceof-Operator sieht so aus: a instanceof B.
Mit anderen Worten, der instanceof-Operator wird true zurückgeben, wenn:
1) Variable a eine Referenz auf ein Objekt des Typs B speichert
2) Variable a eine Referenz auf ein Objekt speichert, dessen Klasse von B erbt
3) Variable a eine Referenz auf ein Objekt speichert, welches das Interface B implementiert
Andernfalls gibt der instanceof-Operator false zurück.
„Alles klar. Warum ist das also notwendig, Onkel Ritschie?“
„Ellie wird dir heute davon erzählen. Das ist ein wirklich schöner Operator. Davon wirst du heute überzeugt sein."
GO TO FULL VERSION