Casten von Werten File

Werbung
Anwendungssysteme
Casten
Grundlagen
Datentypenumwandlung
Name:
Datum:
Klasse:
Blatt Nr.: 1/1
Lfd. Nr.:
Umwandlung Primitiver Datentyp -> Primitiver Datentyp
Nicht immer liegt während des Programmablaufs der Wert einer Variable in dem gewünschtem Datentyp vor.
Deshalb kann es nötig sein, den Datentyp umzuwandeln(zu casten). Grundsätzlich gilt bei den primitiven
Datentypen, dass kleine Datentypen implizit in größere Datentypen umgewandelt werden, ohne das der
Programmierer dies extra anweisen muss.
Zuweisung ohne Informationsverlust
Explizite Typanpassung
int zahl = 65;
double
byte b = zahl; //funktioniert nicht!
boolean
float
Zwar ist die Zahl 65 klein genug, um in den
Wertebereich von byte zu passen, aber verbietet der
long
Compiler in Java grundsätzlich jede Umwandlung,
wenn Informationen verloren gehen könnten.
int
Beispiel:
int n = (int) 3.1415;
short
char
byte
Ziel
Cast
double
implizite Typanpassung
Eine Typumwandlung hat eine sehr hohe Priorität.
Daher muss der Ausdruck gegebenenfalls geklammert werden.
Beispiel:
int n = (int) 1.0315 + 2.1;
int m = (int)(1.0315 + 2.1);
// Compilerfehler
// das ist korrekt
Umwandlung Primitiver Datentyp -> String (Abstrakter Datentyp)
Diese Umwandlung ist typischerweise bei GUIs nötig, wenn z.B. in einem JLabel das Ergebnis einer Rechnung
als Text gesetzt werden soll.
int ergebnis = 1+1; //kompliziertere Rechnungen möglich
lblErgebnistext.setText(ergebnis);
Test.java:37:20: setText(java.lang.String) in javax.swing.JLabel cannot be applied to (int)
lblErgebnistext.setText(x);
^
1 error
Lösung
int ergebnis = 1+1; //kompliziertere Rechnungen möglich
lblErgebnistext.setText(ergebnis + "");
An die Variable wird die leere Zeichenkette angehangen. Dabei wird eine implizierte Typumwandlung durch den
+ Operator durchgeführt, welcher einen beliebigen primitiven Datentyp mit einer Zeichenkette verknüpfen kann.
Umwandlung String (Abstrakter Datentyp) -> Primitiver Datentyp
Diese Umwandlung ist typischerweise bei GUIs nötig, wenn z.B. aus einem JTextField ein Wert ausgelesen
werden soll. Dieser liegt standardmäßig als Text (String) vor.
Lösung
short wert = Short.parseShort(tfdEingabe.getText());
int wert = Integer.parseInt(tfdEingabe.getText());
long wert = Long.parseLong(tfdEingabe.getText());
float wert = Float.parseFloat(tfdEingabe.getText());
double wert = Double.parseDouble(tfdEingabe.getText());
char wert = tfdEingabe.getText().charAt(0); //erstes Zeichen
©Tenbusch
Herunterladen