Ich bin ein beginnender Programmierer und stieß in meinem Lehrbuch darauf:
%Vor% IntElement
ist eine Unterklasse von DataElement
. num
ist ein Int, der einen Wert für eine verknüpfte Liste speichert.
Was ist der Sinn von (IntElement)
nach temp =?
Was wäre falsch mit IntElement temp = otherElement
? Und wie sieht das überhaupt aus, wenn ein Datentyp in Klammern gesetzt wird?
Dies wird Casting genannt, siehe hier:
Grundsätzlich, indem Sie dies tun:
%Vor% Sie sagen dem Compiler, die Tatsache zu ignorieren, dass Sie otherElement
als DataElement
deklariert haben, und vertrauen darauf, dass es eine IntElement
und nicht DataElement
oder eine andere Unterklasse von DataElement
ist.
Sie können nicht nur IntElement temp = otherElement;
verwenden, da Sie otherElement
, das als DataElement
definiert wurde, zu einem anderen Element machen würden, in diesem Fall IntElement
. Dies wird ein großer Schlag für die Typ-Sicherheit sein, weshalb die Typen von Anfang an definiert sind.
Dies könnte technisch mit Typ-Inferenz getan werden:
Java unterstützt das jedoch nicht und Sie müssen explizit sein.
Wenn es möglich ist, andere Elemente zu erhalten, können Sie instanceof
verwenden, um die Laufzeit vor dem Casting zu überprüfen:
Irgendwann, nachdem Sie das durchgemacht haben, sollten Sie sich auch Generika ansehen:
Der Zweck von (IntElement)
nach temp
ist eine Typkonvertierung, technisch gesehen eine Umwandlung , wo du otherElement
sagst, was ein Parameter vom Typ% co_de ist %, sollte als Objekt des konkreteren Typs DataElement
verwendet werden.
jmein ist korrekt, es teilt dem Compiler / Interpreter mit, den einen Variablentyp in einen anderen zu verwandeln. In Wirklichkeit teilt es dem Prozessor nur mit, es als einen anderen Typ zu behandeln. In C ist dies ein Segen und ein Fluch, in Java, was aussieht, als würdest du schreiben, du MUSST die Variable, um sie anders zu behandeln.
(IntElement) wandelt andere Elemente des Typs DataElement in IntElement
umLesen Sie diesen Link über Java-Typen und Typkonvertierung (Casting) für eine ausführlichere Beschreibung.
Tags und Links java