Du liest:
Java instanceof: Der Java instance of Operator [2022]

Java instanceof: Der Java instance of Operator [2022]

13.06.2022
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,

  1. wird ein Array (arr) mit Integer Werten initialisiert
  2. 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,

  1. wird ein Objekt (obj) der Klasse (InstOf) erstellt
  2. 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.

Programmieren lernen Banner

Starte deine Karriere als Softwareentwickler

Interaktiv Python, Java und C++ programmieren lernen

Jetzt loslegen


Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren

Arrow-up