Sobald Variablen und Konstanten verschiedener Typen in einem Ausdruck zusammengefasst sind, können sie in einen ähnlichen Typ geändert werden. Diese Technik der Umwandlung eines einzelnen vordefinierten Typs in einen anderen wird in Java als Typkonvertierung bezeichnet.
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Es gibt zwei verschiedene Arten der Konvertierung, die wir in Programmiersprachen verwenden.
Wenn die Typkonvertierung sofort durch den Compiler ohne Beteiligung des Programmierers durchgeführt wird, wird die Typkonvertierung als implizite Typkonvertierung bezeichnet. Der Compiler unterstützt grundsätzlich jeden Operanden in Richtung des Datentyps des größten Operanden. Während der Datenkonvertierung tritt kein Datenverlust auf. Bei der Konvertierung besteht keine Möglichkeit, eine Ausnahme auszulösen, und wird daher als typsicher bezeichnet. Die Umrechnung einer kleineren Menge in eine viel größere Zahl kann eine implizite Umrechnung sein. Umwandlung von Daten vom Typ Integer in Float.
float i=0; int j=10; i=j;
// Dies kann eine implizite Transformation sein, da Float größer als eine Ganzzahl sein kann, daher kein Mangel an Daten und auch keine Ausnahme.
Die Typkonvertierung, die durch den Programmierer erzwungen werden kann, wird als explizite Typkonvertierung bezeichnet. Grundsätzlich macht der Programmierer einen Ausdruck zu einem bestimmten Typ. Die explizite Typtransformation kann als Typumwandlung bezeichnet werden. Bei der Datenkonvertierung kann es zu einem Datenverlust kommen oder auch nicht. Daher besteht die Möglichkeit eines Detailverlusts. Es könnte einen Fehler auslösen, wenn möglicherweise versucht würde, ohne Typumwandlung auszuführen. Die Umwandlung einer größeren Zahl in kleinere Zahlen kann eine explizite Konvertierung sein.
float k=123.456 int i= (int) k
// Dies kann eine explizite Konvertierung sein, aber auch (int) ist eine Typumwandlung, ein Operator. An diesem Punkt gelingt es uns möglicherweise, einer Ausnahme zu entgehen, aber Sie können den sichtbaren Datenverlust feststellen. d.h. i=123
// .456 kann im Konvertierungsprozess weggelassen werden
Wie bei anderen Programmiersprachen gibt es in Java zwei Arten der Konvertierung:
Beispiele für die Typkonvertierung werden unten im Detail aufgeführt:
Code:
Wir haben hier ein einfaches Programm, einige Deklarationen oben, float, double, byte, short und long, und die Variablen sind jeweils benannt, um ihre Typen zu identifizieren, z. B. float ist floatVal,
Code:
long ist longVal
Code:
Und das Programm gibt einfach eine Erfolgsmeldung aus, wenn es ausgeführt wird.
Lassen Sie uns also einfach sehen, wie einige der Typkonvertierungen hier ins Spiel kommen. Lassen Sie uns zunächst einmal eine Variable erstellen. Wir haben es kurz und nennen es einfach das Ergebnis.
Genau genommen nennen wir es result1. Und lassen Sie uns einfach eine einfache Aufgabe erledigen. Und so weisen wir ihm zunächst einfach den byteVal zu. Nun, wie wir erwarten, führen wir dies erfolgreich aus.
Code:
Ausgabe:
Wir wissen, dass dies eine gültige Zuweisung ist, da ein Byte einem Short zugewiesen werden kann, da es sich um eine erweiternde Konvertierung handelt.
Wenn wir diesen byteVal jedoch nehmen und ihn stattdessen zu einem longVal machen, ist es jetzt tatsächlich ein long; Wenn wir dies ausführen, erhalten wir hier eine Fehlermeldung, die besagt, dass der Typ inkompatibel ist und möglicherweise die Konvertierung von lang nach kurz verloren geht.
Code:
Was wir hier also tun können, ist, eine explizite Besetzung vorzunehmen. Davor werden wir einfach kurz machen. Jetzt ist es gültig und wir können es ausführen.
Code:
Und natürlich funktioniert es. Denn die Long-Position konnte nicht in eine Short-Position umgewandelt werden, da dies eine enger werdende Konvertierung war.
Ausgabe:
Aber indem man die explizite Besetzung voranstellt, ist es jetzt gültig. Wenn wir möchten, können wir eine sehr explizite Umwandlungsnotation festlegen und sagen: Wissen Sie, wir wissen, dass eine Bytekonvertierung zwar zulässig ist, wir aber explizit zeigen möchten, dass wir sie umwandeln, indem wir dort die kurze Umwandlung einfügen, was wir tun können das, und das ist völlig legal.
Code:
Ausgabe:
Werfen wir nun einen Blick auf ein anderes Szenario. Wir werden eine weitere Variable erstellen, die wir result2, nennen werden, und result2 ist ebenfalls kurz. Und was wir hier tun wollen, ist, dass wir einfach unseren byteVal nehmen und den longVal subtrahieren wollen. Jetzt wissen wir, dass das nicht zulässig ist, da das Ergebnis des Ausdrucks die Größe der größten ganzen Zahl darin sein wird, also die Länge.
Code:
Wenn wir dies also ausführen, erhalten wir eine Fehlermeldung, die besagt, dass die Konvertierung einer Long- in eine Short-Position nicht zulässig ist.
Aber sagen wir mal, wir wollen weitermachen und das Ergebnis so kurz wie möglich halten. Wir müssen eine Besetzung machen. Aber wir wollen diese Zeit hier als Wert des Gesamtergebnisses darstellen. Was wir also tun werden, ist, die Kurzbesetzung hier voranzustellen.
Stellen Sie hier die Kurzbesetzung voran. Und schließen Sie das Ganze in Klammern ein. Und führen Sie es aus.
Code:
Es wird erfolgreich ausgeführt.
Ausgabe:
Deklarieren Sie nun eine weitere Variable namens result3, aber deklarieren Sie diese als long. Wir haben also Ergebnis 3 erhalten, und was wir hier tun werden, ist, dass wir diesem unseren longVal – floatVal zuweisen. Wenn wir das also ausführen, geht der Fehler bei der Konvertierung von Float in Long verloren, denn wann immer wir einen Integer-Typ und einen beliebigen Gleitkomma-Typ haben, wird das Ergebnis der Gleitkomma-Typ sein.
Code:
Lassen Sie uns also fortfahren und unser Ergebnis jetzt in einen Gleitkommawert umwandeln. Wenn wir das also zu einem Float machen, sollten wir in der Lage sein, es zu betreiben. Und erfolgreich ausgeführt.
Code:
Ausgabe:
Aber jetzt, wenn wir den floatVal hier nehmen und ihn in einen doubleVal umwandeln, und wenn wir versuchen, dies auszuführen, erhalten wir die Fehlermeldung, weil es besagt, dass das Ergebnis ein Double sein wird, weil, wenn Sie eine Ganzzahl eingeben und ein Gleitkomma, es ist die Größe des größten Gleitkommas in der Gleichung.
Code:
Also machen wir weiter und machen aus diesem Ergebnis ein Double, damit wir es jetzt ausführen können.
Code:
Ausgabe:
1. Variablen sind in Java stark typisiert
2. Primitive Typen
3. Typkonvertierung
Das obige ist der detaillierte Inhalt vonTypkonvertierung in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!