Weitere Grundlegendende Programmierkonzepte in Java
Konvertierung
Wir wollen uns nun noch mit der Umwandlung, von einem Datentyp in einen
Anderen, befassen. Wir haben schon gesehen, dass Java dies in manchen
Situationen automatisch durchführt. Aber es gibt auch Situationen, in
denen Java dies nicht tut. Nämlich immer dann, wenn unter Umständen
Informationen verloren gehen könnten.
long l = 1; // funktioniert int i = 1l; // Erzeugt einen Compilerfehler
In diesen Situationen ist es nötig, dass wir einen expliziten Typecast,
also eine Typenkonvertierung, durchführen. Hierfür schreiben wir den
gewünschten Typ in klammern vor den Ausdruck, der konvertiert werden
soll int i = (int)1l;. Die Typenkonvertierung wird von Java
durchgeführt, bevor andere Operatoren ausgewertet werden. Aus diesem
Grund muss ggF. mit Klammern die Auswertungsreihenfolge angepasst
werden:
System.out.println( (int)1.5 * 2 ); // Ergebnis 2 System.out.println((int)(1.5 * 2)); // Ergebnis 3
Wie wir eine Zahl in einen String umwandeln hatten wir schon
gesehen. Wir verbinden einen String mit der Zahl. Dies kann auch der
leere String sein: String s = 1 + "";.
Der Umgekehrte
Vorgang erfordert leider ein wenig mehr Aufwand. Es gibt für unsere vier
Zahlen-Typen jeweils eine Klasse, die diesen Datentyp auch darstellen
kann. Sie heißen Integer, Long, Float und Double. Jede dieser Klassen
hat eine Klassen-Methode, die aus einem String eine Zahl macht. Mittels
Integer.parseInt(string) können wir aus einem String die Zahl machen,
die er darstellt. Die anderen Datentypen funktionieren analog. Es ist
aber erforderlich, dass in dem String nur Ziffern enthalten sind, er
ggf. ein Vorzeichen hat und bei Double und Float, darf er einen
Dezimalpunkt enthalten. Wird diese Form nicht eingehalten, so bricht
Java mit einem Fehler ab.