veröffentlicht am: 13.06.2022 zuletzt aktualisiert am: 19.04.2023
Der Java instance of operator vergleicht die Instanz einer Referenzvariablen mit dem Klassentyp, Unterklassentyp oder Schnittstellentyp. Java instanceof wird auch als „Typvergleichsoperator“ bezeichnet, weil es den Typ eines Objekts mit dem angegebenen Typ vergleicht. Wird festgestellt, dass das Objekt vom gleichen Typ wie der angegebene ist, ist das Ergebnis true, andernfalls false.
Dieser Beitrag behandelt die Funktionsweise und Verwendung des instanceof Operators in Java. Außerdem werden die folgenden Lernziele vermittelt.
Der Java Operator instanceOf funktioniert nach dem „is-a“ Muster. Der „is-a“ Test wird auch als „das Objekt ist ein Typ einer Klasse“ beschrieben. Die Funktionsweise des instanceOf Operators hängt von der folgenden Syntax ab.
referenzvariable instanceOf KlassenName;
Der Operator instanceof funktioniert nur bei Referenzvariablen. In Java können Variablen entweder vom „primitive“ Typ oder vom „reference“ Typ sein. Die Referenzvariablen verweisen auf ein Objekt im Speicher. Der instanceof Operator gibt einen booleschen Wert zurück.
Der Java Operator instanceof hat mehrere Einsatzmöglichkeiten. Er kann benutzt werden, um die Instanz der Objekte einer Klasse, also die Instanz jeder beliebigen Variable, zu erhalten. In diesem Abschnitt werden verschiedene Anwendungsfälle des instanceof Operators in Java behandelt.
Java bietet integrierte Klassen, um auf Arrays zu verweisen. Die Klasse java.lang.Object von Java bezieht sich auf Arrays. Im folgenden Code implementieren wir den instanceof Operator auf Arrays.
int[] arr= {1,2,3}; System.out.println(arr instanceof java.lang.Object);
Im obigen Code,
Der instanceof Operator hat true zurückgegeben, was zeigt, dass die variable arr zur java.lang.Object Klasse gehört.
Hinweis: Man kann anstelle von java.lang.Object auch nur Object verwenden, um den gleichen Vorgang durchzuführen. Außerdem kann eine String Variable auch mit java.lang.String verglichen werden, indem man den Instanz Operator verwendet.
Wie prüft man, ob ein Objekt eine Instanz der Klasse ist? Im folgenden Code wird instanceof verwendet, um den Typ des Objekts mit der Klasse zu vergleichen.
InstOf obj = new InstOf(); System.out.println(obj instanceof InstOf);
Der instanceof Operator hat true zurückgegeben, dies zeigt, dass obj eine Instanz der Klasse InstOf ist.
Die Java Vererbung wird hier angewendet, um zu prüfen, wie eine Instanz in einer geerbten Klasse funktioniert.
class Beispiel {} public class InOf extends Beispiel { public static void main(String[] args) { InOf obj = new InOf(); // Überprüfen, ob es ein Teil der Kindklasse ist System.out.println(obj instanceof InOf); // Überprüfen, ob es ein Teil der Elternklasse ist System.out.println(obj instanceof Beispiel); } }
Die Ausgabe des instanceof Operators ist true, was bedeutet, dass das Objekt der Klasse InOf (Kind) von Eltern- und Kindklassen angesprochen werden kann.
Im folgenden Java Code wird der Instanceof Operator auf ein Nullobjekt angewendet.
InOf obj1 = null; System.out.println(obj1 instanceof InOf);
Es wird ein Objekt der Klasse InOf mit einem Nullwert erstellt. Später wird der instanceof Operator angewendet, um den Typ eines Objekts mit der Klasse zu vergleichen.
Hinweis: Bei obj1 handelt es sich um eine Klassenvariable, da der Java Konstruktor der Klasse verwendet werden muss, um ein Objekt zu initialisieren.
Die Ausgabe zeigt, dass ein Nullobjekt nicht verwendet werden kann, um seinen Typ mit einer Klasse zu vergleichen. Die Ausgabe ist also „falsch“ („false“).
Der Java instanceof Operator wird verwendet, um den Typ eines Objekts mit seiner Klasse, Unterklasse und Schnittstelle zu vergleichen. In diesem Artikel haben wir einen Überblick über den Java instanceof Operator gegeben. Der instanceof Operator kann verwendet werden, um einen String, Java Array und die Standardklassen von Java zu vergleichen. Zum besseren Verständnis wurden verschiedene Beispiele gezeigt, um die Verwendung von instanceof zu veranschaulichen.
😩 Gelangweilt von den Udemy & YouTube-Tutorials?!
Lerne spielerisch Java und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.
"Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."
- Lennart Sparbier
100% kostenlos registrieren · keine Kreditkarte notwendig
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig