Instanceof ist ein binärer Operator in Java und ==,> und <sind die gleichen Art von Dingen. Da es aus Buchstaben besteht, handelt es sich auch um ein reserviertes Schlüsselwort in Java. Seine Funktion besteht darin zu testen, ob das Objekt links eine Instanz der Klasse rechts ist und Daten vom Typ Boolean zurückgibt. Zum Beispiel:
Die Codekopie lautet wie folgt:
String S = "Ich bin ein Objekt!";
boolean isObject = s instanceof Objekt;
Wir deklarieren eine String -Objektreferenz, verweisen auf ein String -Objekt und verwenden dann Instancof, um zu testen, ob das Objekt, auf das es hinweist, eine Instanz der Objektklasse ist. IsObject ist wahr.
Instanceof hat einige Verwendungszwecke. Zum Beispiel haben wir ein System zum Umgang mit Rechnungen geschrieben, das drei Kategorien enthält:
Die Codekopie lautet wie folgt:
öffentliche Klasse Bill {// Details auslassen}
öffentliche Klasse Telefonbill erweitert Bill {// Details auslassen}
Die öffentliche Klasse Gasbill erweitert Bill {// Details auszulassen}
Es gibt eine Methode im Handler, um ein Objekt des Typs zu akzeptieren und den Betrag zu berechnen. Angenommen, die beiden Rechnungsberechnungsmethoden sind unterschiedlich, und das eingehende Rechnungsobjekt kann einer von zwei sein. Verwenden Sie also Instanz, um zu beurteilen:
Die Codekopie lautet wie folgt:
public double berechnen (bill bill) {
if (Billinstanz von Telefonbill) {
// Berechnen Sie die Telefonrechnung
}
if (Billinstanz von Gasbill) {
// die Gasrechnung berechnen
}
...
}
Auf diese Weise können zwei Unterklassen in einer Methode verarbeitet werden.
Dieser Ansatz wird jedoch häufig als Versagen angesehen, objektorientierte Polymorphismen zu nutzen. Tatsächlich erfordern die oben genannten Funktionen, dass die Methodenüberladung vollständig erreicht werden kann. Geben Sie einfach zwei Namen und Rückgabewerte an und akzeptieren Sie Methoden mit unterschiedlichen Parametertypen:
Die Codekopie lautet wie folgt:
public double berechnen (Telefonbill -Rechnung) {
// Berechnen Sie die Telefonrechnung
}
public double berechnen (gasbill bill) {
// die Gasrechnung berechnen
}