logo

Írja be: Casting Java nyelven

Java nyelven, típusú öntés egy olyan módszer vagy folyamat, amely egy adattípust manuálisan és automatikusan konvertál egy másik adattípusba. Az automatikus konvertálást a fordító, a kézi átalakítást pedig a programozó végzi. Ebben a részben megvitatjuk típusú öntés és típusai megfelelő példákkal.

Írja be: Casting Java nyelven

Típusöntés

Egy érték konvertálása egyik adattípusból egy másik adattípusba az úgynevezett típusú öntés .

A típusöntés típusai

Kétféle típusú öntvény létezik:

  • Szélesítő típusú öntés
  • Szűkítő típusú öntés

Szélesítő típusú öntés

Egy alacsonyabb adattípus konvertálása magasabbra ún kiszélesedő típusú öntés. Úgy is ismert, mint implicit konverzió vagy ledobás . Ez automatikusan történik. Biztonságos, mert nincs esély adatvesztésre. Ez akkor történik, amikor:

  • Mindkét adattípusnak kompatibilisnek kell lennie egymással.
  • A céltípusnak nagyobbnak kell lennie a forrás típusánál.
 byte -> short -> char -> int -> long -> float -> double 

Például a numerikus adattípusok közötti átalakítás char-ra vagy logikaira nem történik meg automatikusan. Ezenkívül a char és a Boolean adattípusok nem kompatibilisek egymással. Lássunk egy példát.

WideningTypeCastingExample.java

 public class WideningTypeCastingExample { public static void main(String[] args) { int x = 7; //automatically converts the integer type into long type long y = x; //automatically converts the long type into float type float z = y; System.out.println('Before conversion, int value '+x); System.out.println('After conversion, long value '+y); System.out.println('After conversion, float value '+z); } } 

Kimenet

 Before conversion, the value is: 7 After conversion, the long value is: 7 After conversion, the float value is: 7.0 

A fenti példában vettünk egy x változót, és hosszú típussá alakítottuk. Ezt követően a hosszú típus úszó típussá alakul.

Szűkítő típusú öntés

A magasabb adattípus alacsonyabb típussá való konvertálása ún szűkül típusú öntés. Úgy is ismert, mint explicit konverzió vagy felöntés . Ezt manuálisan végzi el a programozó. Ha nem hajtjuk végre az öntést, akkor a fordító fordítási idejű hibát jelez.

 double -> float -> long -> int -> char -> short -> byte 

Lássunk egy példát a szűkítő típusú öntésre.

A következő példában kétszer hajtottuk végre a szűkítő típusú öntést. Először a dupla típust konvertáltuk hosszú adattípussá, miután a hosszú adattípust int típussá alakítottuk.

NarrowingTypeCastingExample.java

 public class NarrowingTypeCastingExample { public static void main(String args[]) { double d = 166.66; //converting double data type into long data type long l = (long)d; //converting long data type into int data type int i = (int)l; System.out.println('Before conversion: '+d); //fractional part lost System.out.println('After conversion into long type: '+l); //fractional part lost System.out.println('After conversion into int type: '+i); } } 

Kimenet

 Before conversion: 166.66 After conversion into long type: 166 After conversion into int type: 166