instanceof Operator

JavaIsTheBest

Bekanntes Mitglied
Java:
public boolean equals(Object that) {
        if (this == that)
            return true;
        if (!(that instanceof Vec))
            return false;
        Vec other = (Vec) that;
        if (size != other.size)
            return false;
        for (int i = 0; i < size; i++) {
            if (!elems[i].equals(other.elems[i])) {
                return false;
            }
        }
        return true;
    }

Warum wird hier überprüft, ob that eine Instanz vom Typ Vec ist?
Es wäre doch viel einfacher, wenn man als Parameter ein Vec anstatt ein Object übergibt.
Dann bräuchte man auch nicht mehr das instanceof.
 

Baldur

Aktives Mitglied
equals ist eine Methode die von Object stammt. Der Sinn von equals ist es, zwei beliebige Objekte miteinander vergleichen zu können, egal von welchem Typ sie tatsächlich sind.
Wenn man equals jetzt so implementieren würde, daß es bereits einen Vec entgegen nimmt, muss derjenige, der die Funktion aufruft ja bereits wissen, daß man gerade zwei Vec-Objekte vergleichen will. Wenn man dann zwei unbekannte Objekte vergleichen wollte, müsste man ja erst ermitteln, von welchem Typ die entsprechenden Objekte sind und dann die jeweilige equals-Methode aufrufen. Da ist es einfacher und flexibler, diese Prüfung einmal in der equals-Funktion zu machen, als jedesmal wenn man equals aufruft.

Ein passendes Beispiel hast du vermutlich schon in der for-Schleife am Ende deiner Funktion. Du vergleichst hier ja vermutlich Objekte vom Typ Object, ohne daß du an der Stelle jeweils den Konkreten Typ des Objekts ermitteln musst ;)
 

JavaIsTheBest

Bekanntes Mitglied
Ich glaube jetzt hab ich es verstanden. Die equals und toString Methoden stehen in der Klasse Object und sind vom Java System schon vorgegeben.
Als Parameter erwarten die Methoden ein Object. Wenn ich also, die Methoden equals und toString überschreiben will, dann muss die Signatur GENAU SO aussehen, wie in der Klasse Object?
 

Flown

Administrator
Mitarbeiter
Anders gesagt: Jedes Objekt, das der Entwickler selbst erstellt, erbt von der Klasse Object. Das hat diverse vorgegebene Methoden und diese können überschrieben werden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Polymorphie und instanceOf Operator Java Basics - Anfänger-Themen 6
NeoLexx Abfrage mit instanceof führt zu unerwarteten Wert Java Basics - Anfänger-Themen 9
C Warum funktioniert 'instanceof' bei generics nicht? Java Basics - Anfänger-Themen 4
S Gibt es eine Funktion, die gewissermaßen eine Reihe von instanceOf() vereinheitlicht? Java Basics - Anfänger-Themen 19
G instanceof in Generic Java Basics - Anfänger-Themen 7
A instanceof-if-else-Anweisungen eleganter lösen Java Basics - Anfänger-Themen 5
B instanceof Java Basics - Anfänger-Themen 9
L Best Practise - 'instanceof' oder nicht. Java Basics - Anfänger-Themen 7
Luk10 instanceof Class<T> Java Basics - Anfänger-Themen 6
I if (listenObjekt instanceof meinObjekt.class) Java Basics - Anfänger-Themen 5
A ArrayList-iteration mit Prüfung auf instanceof durch switch case? Java Basics - Anfänger-Themen 13
M Compiler-Fehler instanceof compiler-error Java Basics - Anfänger-Themen 2
A Alternative instanceof Java Basics - Anfänger-Themen 3
0 Vererbung - instanceof Java Basics - Anfänger-Themen 20
J this instanceof Class<Object> Java Basics - Anfänger-Themen 1
D HasMap mit JComponents mit instanceof Java Basics - Anfänger-Themen 3
K Equals,Instanceof und "==" Java Basics - Anfänger-Themen 7
A Datentypen instanceof VS Class - Vergleich Java Basics - Anfänger-Themen 4
S Bessere Lösung zu häufigem instanceof Java Basics - Anfänger-Themen 25
A Besser als instanceof Java Basics - Anfänger-Themen 6
E instanceof vs class==class Java Basics - Anfänger-Themen 5
B instanceof Prüfung für generische Typen Java Basics - Anfänger-Themen 5
S instanceof Comparable...geht nicht? Java Basics - Anfänger-Themen 20
K instanceof Java Basics - Anfänger-Themen 22
A Vereinfachung instanceof Java Basics - Anfänger-Themen 12
G Mit "instanceof" sich selbst Fragen? Java Basics - Anfänger-Themen 4
S Instanceof umkehren Java Basics - Anfänger-Themen 2
E Negative Abfrage auf instanceof Java Basics - Anfänger-Themen 3
D if (event.target instanceof TextField) Java Basics - Anfänger-Themen 2
pkelod Binäre Darstellung Bitwise-Operator Java Basics - Anfänger-Themen 10
U Wie genau funktioniert der ! Operator Java Basics - Anfänger-Themen 3
C ?: Operator Java Basics - Anfänger-Themen 14
L Java operator % Java Basics - Anfänger-Themen 3
KogoroMori21 Erklärung zum Ternären Operator Java Basics - Anfänger-Themen 4
B Modulo-Operator anhand eines Beispieles erklären Java Basics - Anfänger-Themen 7
C Ternärer Operator mit Strings Java Basics - Anfänger-Themen 3
L Modulus Operator Java Basics - Anfänger-Themen 3
A Zuweisungen und -- operator; Java Basics - Anfänger-Themen 2
H << Operator Java Basics - Anfänger-Themen 7
F RegEx "+" nur als Zeichen, nicht als Operator oder Sonstiges Java Basics - Anfänger-Themen 2
H Operatoren Der bedingte Operator ? : ; Java Basics - Anfänger-Themen 2
J new-Operator Java Basics - Anfänger-Themen 6
H this operator - was ist das? Java Basics - Anfänger-Themen 2
R Operatoren Bad operand types for binary operator Java Basics - Anfänger-Themen 4
O Bedingter Operator eine Frage! Java Basics - Anfänger-Themen 10
O Erste Schritte x*y*z mit Shift Operator moeglich? Java Basics - Anfänger-Themen 15
L Operatoren error: bad operand types for binary operator && Java Basics - Anfänger-Themen 8
E Methoden in new-Operator Methode in geschweifter Klammer Java Basics - Anfänger-Themen 3
I bad operand types for binary operator > Java Basics - Anfänger-Themen 5
D Conditional Operator ?: Java Basics - Anfänger-Themen 3
L Operatoren Übungsklausuraufgabe, unbekannter Operator Java Basics - Anfänger-Themen 13
H Operatoren Fehler bad operand types for binary operator Java Basics - Anfänger-Themen 7
snipesss Operator "-" is undefined Java Basics - Anfänger-Themen 1
F Operatoren If mit variabelem Operator Java Basics - Anfänger-Themen 2
K Operatoren The Operator * is undefined for the argument type(s) double, String Java Basics - Anfänger-Themen 4
J Operator * benutzen Java Basics - Anfänger-Themen 3
DeVolt Operatoren Frage zum new-Operator Java Basics - Anfänger-Themen 4
N Methoden Modulo Operator Java Basics - Anfänger-Themen 1
S Operatoren ! Operator Java Basics - Anfänger-Themen 4
O Operator undefined Java Basics - Anfänger-Themen 2
N this-Operator Java Basics - Anfänger-Themen 2
ubaro1 Operatoren Der Tide Operator und positive Ganzzahlen in Binär Java Basics - Anfänger-Themen 1
S Hashcode - Operator ^ Java Basics - Anfänger-Themen 11
M Shift Operator Java Basics - Anfänger-Themen 3
V XOR-Operator? Java Basics - Anfänger-Themen 5
K Zugriff einer Klasse auf eine andere Andere -> bad operand for binary operator Java Basics - Anfänger-Themen 5
J bad operand types for binary operator Java Basics - Anfänger-Themen 3
T Pixelmanipulation Sobel-Operator Java Basics - Anfänger-Themen 2
K Frage zu Class Operator Java Basics - Anfänger-Themen 2
L The operator && is undefined for the argument type(s) String, boolean Java Basics - Anfänger-Themen 8
C Operatoren | - Operator Java Basics - Anfänger-Themen 10
K .Class Operator unklar Java Basics - Anfänger-Themen 3
B Operator | Java Basics - Anfänger-Themen 11
R Compiler-Fehler Operator + nicht erlaubt? Java Basics - Anfänger-Themen 6
C Was tut der | Operator? Java Basics - Anfänger-Themen 8
S Objekt Erzeugung ohne new Operator Java Basics - Anfänger-Themen 6
C Logischer UND Operator funktioniert nicht richtig Java Basics - Anfänger-Themen 5
H Buch: Java lernen mit BlueJ Modulo-Operator Java Basics - Anfänger-Themen 16
K Conditional Operator Java Basics - Anfänger-Themen 16
A Was bedeutet der Operator *= ? Java Basics - Anfänger-Themen 2
A Operator in Java Java Basics - Anfänger-Themen 11
S Modulo Operator Java Basics - Anfänger-Themen 8
C Variablen Problem: variable operator might not have been initialized Java Basics - Anfänger-Themen 9
D : ? Operator -Verständnisproblem Java Basics - Anfänger-Themen 24
K OOP Wertebereich Ergebnis von % Operator Java Basics - Anfänger-Themen 8
L Frage zu Konstruktoren und dem this Operator Java Basics - Anfänger-Themen 16
R Ersatz für Modulo Operator Java Basics - Anfänger-Themen 8
W &-Operator in diesem Zusammenhang Java Basics - Anfänger-Themen 19
J Oder-Operator Tastenkürzel Java Basics - Anfänger-Themen 7
K Cast-Operator Java Basics - Anfänger-Themen 3
D Bit-Operator & Java Basics - Anfänger-Themen 5
Q mathematische Operationen als Methode und nicht Infix-Operator Java Basics - Anfänger-Themen 14
V Cast-Operator Java Basics - Anfänger-Themen 2
G super operator und incompatible types, simple fehler Java Basics - Anfänger-Themen 8
N Operator aus Array lesen Java Basics - Anfänger-Themen 2
G Für was braucht man den This-operator Java Basics - Anfänger-Themen 3
M Binärdarstellung in Java mit Shift-Operator + bitweises und Java Basics - Anfänger-Themen 2
W Seltsamer Operator int var = 1<< 23; Java Basics - Anfänger-Themen 4
P If Abfrage, Variablenvertauschung und UND Operator Java Basics - Anfänger-Themen 4
J Modulo-Operator rechnet falsch Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben