Unterschied zwischen Typumwandlung und Typumwandlung

Autor: Laura McKinney
Erstelldatum: 1 April 2021
Aktualisierungsdatum: 4 Kann 2024
Anonim
Java für Softwaretester - 4.) Typumwandlung: Implizite und explizite
Video: Java für Softwaretester - 4.) Typumwandlung: Implizite und explizite

Inhalt


Der grundlegende Unterschied zwischen Typkonvertierung und Typumwandlung, d. H. Typumwandlung, wird vom Compiler "automatisch" ausgeführt, wohingegen Typumwandlung vom Programmierer "explizit" durchgeführt werden muss.

Die beiden Begriffe "Typumwandlung" und "Typkonvertierung" treten auf, wenn ein Datentyp in einen anderen konvertiert werden muss. Wenn die beiden Typen miteinander kompatibel sind, wird die Konvertierung eines Typs in einen anderen vom Compiler automatisch durchgeführt. Lassen Sie uns den Unterschied zwischen Typumwandlung und Konvertierung anhand der Vergleichstabelle erläutern.

  1. Vergleichstabelle
  2. Definition
  3. Hauptunterschiede
  4. Fazit

Vergleichstabelle:

Grundlage für den VergleichGeben Sie Casting einTypkonvertierung
BedeutungEin Datentyp wird vom Benutzer einem anderen zugewiesen, wobei ein Umwandlungsoperator verwendet wird. Anschließend wird er als "Typumwandlung" bezeichnet.Die automatische Konvertierung eines Datentyps in einen anderen wird vom Compiler als "Typkonvertierung" bezeichnet.
AngewandtDas Typumwandeln kann auch auf zwei inkompatible Datentypen angewendet werden.Die Typkonvertierung kann nur implementiert werden, wenn zwei Datentypen kompatibel sind.
OperatorZum Umwandeln eines Datentyps in einen anderen wird ein Umwandlungsoperator () benötigt.Kein Bediener erforderlich.
Größe der DatentypenDer Zieltyp kann kleiner als der Quelltyp sein.Hier muss der Zieltyp größer als der Quelltyp sein.
UmgesetztDies geschieht während der Programmentwicklung.Dies erfolgt explizit beim Kompilieren.
Conversion-Typ

Eingeschränkte KonvertierungErweiterung der Conversion.
Beispielint a;
Byte b;
...
...
b = (Byte) a;
int a = 3;
float b;
b = a; // Wert in b = 3.000.


Definition der Gussart

Typ Gießen kann definiert werden als Umwandlung eines Datentyps in einen anderen Datentyp durch den Programmierer zum Zeitpunkt des Programmentwurfs. Die automatische Konvertierung eines Datentyps in einen anderen ist nicht immer möglich. Dies kann die Bedingung sein, dass der Zieltyp kleiner als der Quelltyp ist. Daher muss der Programmierer den größeren Datentyp explizit mit dem Umwandlungsoperator () in einen kleineren Datentyp umwandeln. Da der größere Datentyp in den kleineren Datentyp moduliert wird, wird er auch als "Eingrenzungskonvertierung" bezeichnet.

Erklärung:

Zieltyp = (Zieltyp) Variable / Wert // Zieltyp ist ein Typ, in den Sie den Quelltyp konvertieren möchten, es ist immer der Zieltyp.

Beispiel

Lassen Sie es uns anhand eines Beispiels verstehen. Sie möchten den Datentyp "int" in "byte" konvertieren. Da "Byte" jetzt kleiner als "int" ist, ist eine Typkonvertierung nicht zulässig. Hier mussten wir "int" implizit in "byte" konvertieren, indem wir den Casting-Operator "()" verwendeten. Da "int" größer als "byte" ist, wird die Größe von "int" auf "int mod byte" reduziert.


int a; Byte b; ... ... b = (Byte) a;

Wenn das "float" in "int" konvertiert wird, wird die Größe des float abgeschnitten, da "int" den Bruchwert nicht speichert. Wenn die Größe des Zieltyps zu klein ist, um in den Quelltyp zu passen, ist der Quelltyp der Modulo-Zieltyp "Bereich". Casting kann auch angewendet werden, wenn Datentypen kompatibel sind. Es wird empfohlen, überall dort, wo eine Typumwandlung erforderlich ist, Typumwandlung zu verwenden.

Definition der Typkonvertierung

Typkonvertierung ist die automatische Konvertierung eines Datentyps in einen anderen, wenn dies vom Compiler ausdrücklich verlangt wird. Vor der Typkonvertierung müssen jedoch zwei Bedingungen erfüllt sein.

  • Quell- und Zieltyp müssen kompatibel sein.
  • Der Zieltyp muss größer als der Quelltyp sein.

Diese beiden Bedingungen müssen erfüllt sein, um eine Typkonvertierung zu erzielen. Diese Art der Konvertierung wird als "Verbreiterung" bezeichnet. Wenn ein kleinerer Typ in einen größeren Typ konvertiert wird, tritt eine Typverbreiterung auf. Bei dieser erweiterten Konvertierung sind numerische Typen wie "int", "float" miteinander kompatibel, während "numeric to char" und "boolean" oder "char to boolean" ebenfalls nicht kompatibel sind.

Beispiel

Dieses Beispiel bietet einen besseren Überblick

int a = 3; float b; b = a; // Wert in b = 3.000.

In diesem Fall wird "int" in "float" umgewandelt, was größer als "int" ist, sodass der Quelltyp erweitert wird. Hier ist kein Casting-Operator erforderlich, da dies vom Compiler explizit ausgeführt wird.

  1. Der grundlegende Unterschied, der die Typumwandlung von der Typumwandlung unterscheidet, besteht darin, dass die Typumwandlung von einem Typ in einen anderen vom Programmierer durchgeführt wird. Andererseits ist die Typkonvertierung die Konvertierung eines Typs in einen anderen, die der Compiler beim Kompilieren vornimmt.
  2. Typumwandlung kann auf die Datentypen angewendet werden, die möglicherweise nicht miteinander kompatibel sind. Umgekehrt kann die Typkonvertierung nur auf die miteinander kompatiblen Datentypen angewendet werden.
  3. Für die Konvertierung eines Typs in ein anderes Typ-Casting ist der Casting-Operator "()" erforderlich, während für die Konvertierung eines Datentyps in ein anderes Typ-Conversion kein Operator erforderlich ist.
  4. Beim Konvertieren eines Datentyps in einen anderen Typ kann der Zieltyp größer oder kleiner als der Quelltyp sein. Im Gegensatz dazu muss der Zieltyp bei der Typkonvertierung größer als der Quelltyp sein.
  5. Die Konvertierung eines Typs in einen anderen Typ erfolgt während der Codierung im Typ-Casting. Im Gegensatz dazu erfolgt bei der Typkonvertierung die Konvertierung eines Typs in einen anderen explizit während der Kompilierung.
  6. Typumwandlung wird als Verengungsumwandlung bezeichnet, da hier der Zieltyp kleiner als der Quelltyp sein kann. Im Gegensatz dazu wird die Typkonvertierung als Erweiterungskonvertierung bezeichnet, da hier der Zieltyp größer sein muss als der Quelltyp.

Fazit:

Es kann gefolgert werden, dass die Typkonvertierung und das Typgießen beide die Aufgabe der Konvertierung eines Datentyps in einen anderen ausführen, sich jedoch dahingehend unterscheiden, dass das Typgießen vom Programmierer mit cast operator () 'und die Typkonvertierung vom Compiler durchgeführt wird , und es wird kein Operator verwendet.