logo

Typumwandlung in Java

Typumwandlung in Java ist der Prozess der Konvertierung eines Datentyps in einen anderen Datentyp mithilfe des Casting-Operators. Wenn Sie einen Wert von einem primitiven Datentyp einem anderen Typ zuweisen, wird dies als Typumwandlung bezeichnet. Um die Verwendung einer Variablen auf eine bestimmte Art und Weise zu ermöglichen, muss bei dieser Methode der Java-Compiler explizit angewiesen werden, eine Variable eines Datentyps als Variable eines anderen Datentyps zu behandeln.

Syntax:



 variableName = () value;>

Arten des Typgusses

Es gibt zwei Arten von Type Casting in Java:

  • Aufweitender Guss
  • Schmaler Guss

Aufweitender Guss

Ein niedrigerer Datentyp wird durch einen Prozess, der als Widening Type Casting bezeichnet wird, in einen höheren umgewandelt. Implizites Typ-Casting und Casting-Down sind einige Namen dafür. Es kommt natürlich vor. Da keine Gefahr eines Datenverlusts besteht, ist es sicher. Beim Aufweitungsguss kommt es vor, wenn:

  • Der Zieltyp muss größer als der Quelltyp sein.
  • Beide Datentypen müssen miteinander kompatibel sein.

Syntax:



larger_data_type variable_name = smaller_data_type_variable;>


Java






// Java program to demonstrate Widening TypeCasting> import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >int> i =>10>;> > >// Wideing TypeCasting (Automatic Casting)> >// from int to long> >long> l = i;> > >// Wideing TypeCasting (Automatic Casting)> >// from int to double> >double> d = i;> > >System.out.println(>'Integer: '> + i);> >System.out.println(>'Long: '> + l);> >System.out.println(>'Double: '> + d);> >}> }>

>

>

int zum Stringen in Java
Ausgabe

Integer: 10 Long: 10 Double: 10.0>

Schmaler Guss

Der Prozess der Verkleinerung eines größeren Datentyps in einen kleineren wird als einschränkendes Typumwandeln bezeichnet. Andere Bezeichnungen dafür sind Casting-Up oder explizite Typumwandlung. Es passiert nicht einfach so. Wenn wir das nicht explizit tun, tritt ein Fehler bei der Kompilierung auf. Eine einschränkende Typumwandlung ist unsicher, da es aufgrund des kleineren zulässigen Wertebereichs des niedrigeren Datentyps zu Datenverlusten kommen kann. Ein Cast-Operator unterstützt den Prozess des expliziten Castings.

Syntax:

smaller_data_type variable_name = (smaller_data_type) larger_data_type_variable;>

Beispiel:

Java




// Java Program to demonstrate Narrow type casting> import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >double> i =>100.245>;> > >// Narrowing Type Casting> >short> j = (>short>)i;> >int> k = (>int>)i;> > >System.out.println(>'Original Value before Casting'> >+ i);> >System.out.println(>'After Type Casting to short '> >+ j);> >System.out.println(>'After Type Casting to int '> >+ k);> >}> }>

>

>

Ausgabe

Original Value before Casting100.245 After Type Casting to short 100 After Type Casting to int 100>

Arten des expliziten Castings

Im Wesentlichen gibt es zwei Arten des expliziten Castings:

np.histogramm
  • Explizites Upcasting
  • Explizite Herabwürdigung

Explizites Upcasting

Beim Upcasting handelt es sich um den Prozess der Umwandlung eines Subtyps in einen Supertyp in Aufwärtsrichtung des Vererbungsbaums. Wenn ein Unterklassenobjekt durch eine Oberklassen-Referenzvariable referenziert wird, wird ohne weiteren Aufwand ein automatischer Prozess ausgelöst.

Beispiel:

Java




// Java Program to demonstrate Explicit Upcasting> import> java.io.*;> > class> Animal {> >public> void> makeSound()> >{> >System.out.println(>'The animal makes a sound'>);> >}> }> > class> Dog>extends> Animal {> >public> void> makeSound()> >{> >System.out.println(>'The dog barks'>);> >}> > >public> void> fetch()> >{> >System.out.println(>'The dog fetches a ball'>);> >}> }> class> GFG {> >public> static> void> main(String[] args)> >{>// Upcasting> >Animal animal =>new> Dog();> >// Calls the overridden method in Dog class> >animal.makeSound();> >// This would give a compile error as fetch() is not> >// a method in Animal class> >// animal.fetch();> >}> }>

>

>

Ausgabe

The dog barks>

Explizite Herabwürdigung

Wenn ein Unterklassentyp auf ein Objekt der übergeordneten Klasse verweist, wird der Vorgang als Downcasting bezeichnet. Wenn dies manuell erfolgt, gibt der Compiler zur Laufzeit einen ClassCastException-Fehler aus. Dies ist nur mit dem Instanzoperator möglich. Es ist nur das Herunterwerfen eines bereits hochgeworfenen Objekts möglich.

Beispiel:

Java




Rekha-Alter
// Java Program to demonstrate Explicit downcasting> import> java.io.*;> class> Animal {> >public> void> eat()> >{> >System.out.println(>'The animal is eating.'>);> >}> }> > class> Cat>extends> Animal {> >public> void> meow()> >{> >System.out.println(>'The cat is meowing.'>);> >}> }> > class> GFG {> >public> static> void> main(String[] args)> >{> >Animal animal =>new> Cat();> >animal.eat();> > >// Explicit downcasting> >Cat cat = (Cat)animal;> >cat.meow();> >}> }>

>

>

Ausgabe

The animal is eating. The cat is meowing.>