Java instanceof: Der Java instance of Operator

    Avatarbild von Preet Sanghavi
    Preet Sanghavi

    veröffentlicht am: 13.06.2022
    zuletzt aktualisiert am: 19.04.2023

    Java instanceof: Der Java instance of Operator im großen Überblick!

    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.

    • Wie der instanceof Operator in Java funktioniert
    • Wie man den instanceof Operator in Java verwendet

    Wie funktioniert der Java instanceOf Operator?

    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.

    Wie verwendet man den Java instanceof Operator?

    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.

    Wie prüft man, ob ein Array zur Java Klasse Array gehört?

    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,

    • wird ein Array (arr) mit Integer Werten initialisiert
    • und der instanceof Operator wird verwendet, um die Instanz von arr in java.lang.Object zu überprüfen.

    Ausgabe

    Wir prüfen nun, ob das Array Objekt eine Instanz einer bestimmten Klasse ist (engl. we check if the object is an instance of the Array-Class).

    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);

    Im obigen Code,

    • wird ein Objekt (obj) der Klasse (InstOf) erstellt
    • der instanceof Operator wird verwendet, um zu prüfen, ob obj eine Instanz von InstOf ist oder nicht

    Ausgabe

    Wir prüfen, ob das Objekt Teil einer Oberklasse ist, beziehungsweise eine Referenz zu ebendieser besteht (engl. Parent Reference).

    Der instanceof Operator hat true zurückgegeben, dies zeigt, dass obj eine Instanz der Klasse InstOf ist.

    Wie prüft man die Instanz eines Objekts in einer geerbten Klasse?

    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);
        }
    }

    Im obigen Code,

    1. erweitert die Klasse InOf die Klasse Beispiel
    2. ein Objekt der Klasse InOf wird erstellt
    3. der instanceof Operator wird verwendet, um die Instanz von obj mit den Eltern- und Kindklassen zu überprüfen

    Ausgabe

    Der instanceof ist KEIN Vergleichsoperator (engl. Type Comparison Operator)!

    Die Ausgabe des instanceof Operators ist true, was bedeutet, dass das Objekt der Klasse InOf (Kind) von Eltern- und Kindklassen angesprochen werden kann.

    Wie wendet man den Java instanceof Operator bei Nullwerten?

    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.

    Ausgabe

    Java instance of: Die Zusammenfassung!

    Die Ausgabe zeigt, dass ein Nullobjekt nicht verwendet werden kann, um seinen Typ mit einer Klasse zu vergleichen. Die Ausgabe ist also „falsch“ („false“).

    Zusammenfassung: Der Java instanceof Operator

    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.

    TP Star TP Star TP Star TP Star TP Star

    "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

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig