Typanpassung (Casting) in Java

Manchmal kommt es vor, dass Datentypen konvertiert werden müssen. Dies bezeichnet man als Typanpassung oder casting.

In Java gibt es zwei Arten der Typanpassung:

  • Automatische Typanpassung
    Hier werden die Daten eines kleineren Datentyps automatisch (implizit) an den größeren angepasst.
  • Explizite Typanpassung
    Hier wird ein größerer Datentyp einem kleineren zugewiesen. Dies geschieht allerdings nur mit einem Datenverlust.

 


automatische anpassung der grösse

byte und short werden automatisch bei Rechenoperationen in den Typ int umgewandelt.

Ist der Operand vom Typ long, dann werden alle Operanden auf long erweitert.

Wird als Ergebnis short oder byte verlangt, muß dies explizit angegeben werden. 


Folgende Typumwandlungen sind ohne Informationsverlust möglich:

Von Typ

In Typ

byte

short, char, int, long, float, double

short

int, long, float, double

char

int, long, float, double

int

long, float, double

long

float, double

float

double

 


 

Explizite Typanpassung

Die explizite Anpassung engt einen Typ selbstverständlich ein.
Der gewünschte Datentyp wird vor dem umzuwandelnden Datentyp geschrieben. Der gewollte Datentyp ist geklammert.

 

Beispiel:

Umwandlung einer Fließkomma- in eine Ganzzahl. Als Typ möchten wir int haben.

(int) 3.141592654

 

Hier ein Programm, welches den Mittelwert zweier Zahlen berechnet und das Ergebnis zuerst als Gleitkomma- und dann als Ganzzahl ausgibt.

public class Main
{
    public static void main(String[] args)
    {
     
        double a, b, c;
       
        a = 10;
        b = 3.14;
        c = (a+b)/2;
       
        System.out.println("Der Mittelwert = " + c);     //Ausgabe von c als double
        c = (int) c;     //Die Variable c wird hier in den Typ int umgewandelt
        System.out.println("Der Mittelwert = " + c);     //Ausgabe von c als int
         
    }
}

 

Hier die Ausgabe:

Der Mittelwert = 6.57
Der Mittelwert = 6.0