17.2 Explizites Casten
 
Die Methode parseInt(..) Von Interesse ist auch der umgekehrte Vorgang, eine Zeichenkette nämlich in einer int-Variablen ablegen. Die Typenumwandlung übernimmt hier eine Methode. Voraussetzung ist, dass der Inhalt des Stringobjekts in eine int-Variable passen.

String name = "1234";
int z = Integer.parseInt(name);
System.out.println(z);

 

Explizites Casten, ein Beispiel Wie das nachfolgende Beispiel zeigt, ist das Casten nicht auf int- und Stringobjekte beschränkt 

int a = 7;
int b = 4;
System.out.println(a/b);
System.out.println((double)a/(double)b);

Wie das Pluszeichen ist das auch das / -Zeichen überladen, es führt, je nach Kontext, Ganzzahldivision oder die Division von Gleitkommazahlen aus. In der Zeile 3 des oben dargestellten Programmauszugs handelt es sich um eine Division von ganzen Zahlen, der Quotient ist ebenfalls eine ganze Zahl. In der letzten, dargestellten Programmzeile werden a und b zunächst explizit zu Gleitkommazahlen gecastet, so dass durch '/' eine Division ausgeführt wird, deren Quotient ebenfalls eine Gleitkommazahl ist.

Die Ausgaben heißen also:

1
1.75

Ein Typcast

int ergebnis = (int) (zaehler/nenner);

wobei zaehler und nenner vom Typ double sein mögen, verursacht Informationsverlust, da die Nachkommastellen bei der Division abgeschnitten werden. Hier wird deutlich, warum solche Typcastings explizit sein müssen, dem Programmierer muss hier klar sein, ob die Verluste akzeptiert vielleicht sogar gewünscht sein könnten.

Das Casten ist nicht auf Zahlen unterschiedlichen Typs beschränkt. Wir werden deshalb später immer wieder auf diese Technik zu sprechen kommen
 

zu 17.3 Übung
zur Startseite www.pohlig.de  (C) MPohlig 2004