~Java4Beginners~
~Java4Beginners~

Typcasting

Bei Berechnungen werden Sie schnell feststellen, dass sich der Datentyp ändern müsste, damit das korrekte Ergebnis zu Stande kommt. So wäre die Division 7/2 eigentlich 3.5. Da die Zahl 7 und 2 allerdings vom Datentyp int sind, kommt als Ergebnis ebenfalls ein int-Wert zustande, in diesem Beispiel die 3. Um das korrekte Ergebnis zu bekommen, müsste das Ergebnis als Doublewert "gecastet" werden.
Wir unterschieden 2 grundlegende Arten von Typcasting.
  • implizites Typcasting
  • explizites Typcasting

implizites Typcasting

Die implizite Typumwandlung findet automatisch bei der Zuweisung statt. Dies geht jedoch nur, wenn ein niederwertiger Datentyp in einen höher wertigen Datentypen umgewandelt wird.

// Variablendeklaration und Variableninitialierung 
// impliziertes Type-Casting
byte zahlByte = 3;
short zahlShort = zahlByte;
int zahlInt = zahlShort;
long zahlLong = zahlInt;
float zahlFloat = zahlLong;
double zahlDouble = zahlFloat;

explizites Typcasting

Um den Wert eines höherwertigen Datentypes zuzuweisen, muss ein explizites Type-Casting, sprich eine ausdrückliche Typumwandlung erfolgen. Dieses passiert mit Hilfe des sogenannten Cast's. Mit dem Cast wird angegeben, in welchen Datentyp umgewandelt werden soll. Die Syntax des Cast's ist immer identisch.
(Datentyp) Wert
Natürlich gibt es hier auch wieder Fallen. Wichtig hierbei ist es, dass ausschließlich der erste Wert nach dem Cast umgewandelt wird. Soll also das Ergebnis einer Berechnung gecastet werden, dann muss diese Berechnung hinter dem Cast in Klammern stehen.

int ergebnis = (int) 7.2 - 3.6; // In diesem Falle wird nur die 7.2 zu int-Wert 7 gecastet.
int ergebnis1 = (int) (7.2 - 3.6); 
// Die Subtraktion wird berechnet und das Ergebnis 3,6 wir zum int-Wert 3 gecastet.
Wir können hier z. B. schon feststellen, dass beim Cast von double zu int einfach die Nachkommastellen entfernt werden.
nach oben Java4Beginners -- Seitenversion 1.0 -- Stand: 2017-03-27