Einführung in instanceOf in Java

instanceOf ist eine Java Programming Language Class, die beim Aufruf einen booleschen Wert zurückgibt und zum Untersuchen der Beziehung zwischen Object und einer Klasse / Schnittstelle verwendet wird. Aufgrund seiner Fähigkeit, diese beiden zu vergleichen, wird es auch als "Typvergleichsoperator" bezeichnet. Mit instanceOf wird einfach geprüft, ob ein Objekt von einem beliebigen Typ ist oder nicht, und es wird ein boolescher Wert zurückgegeben, der entweder wahr oder falsch ist. InstanceOf ist einer der hilfreichen Operatoren in Java, mit denen nützliche Informationen zu einem Objekt in einer Laufzeitumgebung abgerufen werden können.

Syntax:

Die instanceOf-Klasse wird verwendet, um zu überprüfen, ob das Objekt einer Klasse angehört oder nicht.

obj instanceOf object

Oben ist die Standardsyntax für die instanceOf-Klasse angegeben. Hier ist das Objekt der Name des Objekts, das zuvor erstellt worden sein muss (Referenz). instanceOf ist das Schlüsselwort und das Objekt ist die Klasse oder die Schnittstelle, mit der wir das obj-Objekt abgleichen.

In verschiedenen Fällen kann sich instanceOf als nützlich erweisen, beispielsweise wenn wir eine Sammlung von Objekten haben und Sie nicht sicher sind, auf welches Objekt es sich bezieht. Ein Beispiel für einen solchen Fall kann ein einfaches Formular mit vielen Steuerelementen sein.

Auch wenn wir instanceOf mit einer Variablen verwenden, die einen NULL-Wert hat, ist es sicher, false zurückzugeben.

Wie funktioniert instanceOf?

Der instanceOf-Operator in Java arbeitet mit einer einfachen is-a-Beziehung. Einfach ausgedrückt, ist eine Beziehung ein objektorientiertes Konzept, bei dem wir vergleichen oder sagen, eine Beziehung zwischen Abstraktionen bearbeiten, wobei Klasse A eine Unterklasse der Klasse B ist. Dies ist eine Beziehung, die vollständig auf Vererbung basiert. Mit anderen Worten, es ist, als würde man sagen, "X ist vom Y-Typ".

Lassen Sie uns nun die Funktionsweise von instanceOf zusammen mit dem entsprechenden Code verstehen.

Zuerst erstellen wir eine Klasse mit dem Namen Parent.

Code:

Class Parent(
)
Then let's add a simple main class.
public static void main(String args()) (
)

Dann erstellen wir eine Instanz unserer Parent-Klasse.

Parent child = new Parent();

Schließlich verwenden wir den Operator instanceOf, um die Beziehung zwischen child und Parent zu überprüfen. Was so aussieht: child instanceOf Parent

Wie bereits erwähnt, geht die Syntax für instanceOf von einem Objekt aus, das überprüft werden muss, dann vom instanceOf-Schlüsselwort und dann von der Klasse / Schnittstelle, mit der das angegebene Objekt getestet werden soll.

An jedem Punkt, an dem wir auf das Schlüsselwort "extend" oder "implements" stoßen, ist es in einer Klassendeklaration ein klares Zeichen dafür, dass eine Beziehung verwendet wird.

Beispiele für instanceOf in Java

Das folgende Beispiel zeigt eine einzeilige Verwendung von instanceOf.

Class instanceof_java(
public static void main(String args()) (
instanceof_java s = new instanceof_java();
System.out.println(s instanceOf instanceof_java);
)
)

Code-Interpretation: Begonnen mit dem Erstellen einer einfachen Klasse instanceof_java. In der Klasse instanceof_java haben wir unsere Hauptklasse und in unserer Hauptklasse haben wir ein Objekt s erstellt. Dieses Objekt ist vom Typ instanceof_java. Um dann die Arbeitsweise von instanceOf zu implementieren, haben wir eine Ausgabeanweisung mit dem Objekt s bereitgestellt. In der letzten Zeile haben wir s zusammen mit dem instanceof-Schlüsselwort und der übergeordneten Klasse übergeben. Bei der Ausführung gibt der Code 'true' zurück, da das Objekt s vom Typ instanceof ist.

Wenn wir ein Objekt unserer bekannten Klasse oder Schnittstelle haben, aber demselben Objekt keinen Wert zugewiesen haben, muss es false zurückgeben, obwohl es zur selben Klasse gehört.

Class instanceof_sample(
public static void main(String args()) (
instanceof_sample new = null;
System.out.println(new instanceOf instanceof_sample);
)
)

Hier haben wir einen ähnlichen Code wie im vorherigen Beispiel, jedoch mit einem Nullwert-Objekt. Bei der Ausführung gibt dieser Code false zurück. Wie wir sehen können, ist object new die Instanz von instanceof_sample, aber new wird ein Nullwert zugewiesen, der in false zurückgegeben wird.

Regeln für instanceOf Operator

Basierend darauf, ob das Objekt ref ist nicht null und eine Instanz des angegebenen Typs. Wenn X die einfache Klasse des Objekts ist, auf das verwiesen wird, und Y die aufgelöste Klasse oder ein Array eines Schnittstellentyps ist.

  • Wenn X eine einfache Klasse ist, dann:
  • Wenn Y ein Klassentyp ist, muss X eine Unterklasse von Y sein, oder X muss dieselbe Klasse wie Y sein.
  • Wenn Y ein Schnittstellentyp ist, muss die X-Klasse die Schnittstelle T implementieren.
  • Wenn X Typ interface ist, dann:
  • Wenn Y ein Klassentyp ist, muss das Y ein Objekt sein.
  • Y kann dasselbe sein wie die Schnittstelle als X oder Super-Schnittstelle von X, wenn Y ein Schnittstellentyp ist.
  • Wenn X eine Klasse ist, die den Array-Typ SC () darstellt, der ein Array von Typ-SC-Komponenten ist, dann:
  • Wenn Y ein Klassentyp ist, muss Y ein Objekt sein.
  • Wenn Y ein Schnittstellentyp ist, muss Y ein Schnittstellentyp sein, der von Arrays implementiert wird.

Schließlich werden wir ein instanceOf-Programm demonstrieren, um zu verstehen, dass das übergeordnete Objekt keine Instanz der untergeordneten Klasse sein kann.

Programm

class Subject ( )
class Topic extends Subject ( )
class instanceof_java
(
public static void main(String() args)
(
Subject history = new Subject ();
if (history instanceof Topic)
System.out.println("history is instance of Topic");
else
System.out.println("history is NOT instance of Topic");
)
)

Code-Interpretation: Um den instanceOf-Operator in verschiedenen Szenarien zu verstehen, haben wir den obigen Code geschrieben. Wir haben einen einfachen Klassen-Betreff und dann einen weiteren Klassen-Betreff erstellt, der den Klassen-Betreff erweitert und die Klasse Topic als untergeordnetes und die Klasse Subject als übergeordnetes Element definiert. Dann noch eine Klasse mit der Hauptmethode. Innerhalb der main-Methode haben wir eine neue Instanz der übergeordneten Klasse Subject erstellt. In der IF ELSE-Schleife haben wir den Zustand des Instanzobjekts mit der übergeordneten Klasse Subject überprüft. Wenn die Bedingung erfüllt ist, wird "Verlauf ist eine Instanz von Topic" und "Verlauf ist KEINE Instanz von Topic" zurückgegeben, wenn die Bedingung fehlschlägt.

Nach Ausführung des obigen Codes lautet die Ausgabe "history is NOT an instance of Topic", was bedeutet, dass die in IF übergebene Bedingung fehlschlägt. Es ist passiert, weil wir versucht haben, das übergeordnete Objekt des Objekts "history" mit der Klasse Topic zu überprüfen. Wir wissen, dass die Klasse Topic die Klasse Subject erweitert, was bedeutet, dass Topic eine Unterklasse von Subject ist. Und als wir versuchten, den Typ des Verlaufs mit der Klasse Topic zu überprüfen, wurde false (NOT) zurückgegeben. Dies bedeutet, dass das übergeordnete Objekt keine Instanz einer Klasse sein kann.

Ausgabe:

Fazit-Instanz von in Java

Wir haben etwas über die instanceOf-Klasse in Java gelernt, die einfach entscheidet, ob das Objekt vom angegebenen Typ ist. Wir haben verstanden, wie sich eine Beziehung auf den instanceOf-Operator auswirkt. Das auch als Vergleichsoperator bezeichnete instanceOf basiert auf der Vererbung.

Empfohlene Artikel

Dies war eine Anleitung zu InstanceOf in Java. Hier diskutieren wir, wie InstanceOf in Java funktioniert, Regeln mit Code-Interpretation. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Java-Schlüsselwörter
  2. Java-Anmerkungen
  3. Spickzettel JavaScript
  4. PHP-Schlüsselwörter