logo

Кастиране на типове в Java

В Java, типово леене е метод или процес, който преобразува тип данни в друг тип данни по два начина ръчно и автоматично. Автоматичното преобразуване се извършва от компилатора, а ръчното преобразуване се извършва от програмиста. В този раздел ще обсъдим типово леене и неговите видове с подходящи примери.

Кастиране на типове в Java

Типово леене

Преобразуването на стойност от един тип данни в друг тип данни е известно като типово леене .

Видове отливане на типове

Има два типа кастинг на типове:

  • Разширяващ тип отливка
  • Стесняващ тип отливка

Разширяващ тип отливка

Извиква се преобразуване на по-нисък тип данни в по-висок разширяване типово леене. Известен е още като имплицитно преобразуване или хвърляне надолу . Извършва се автоматично. Безопасно е, защото няма шанс да загубите данни. Провежда се, когато:

java xor
  • И двата типа данни трябва да са съвместими един с друг.
  • Целевият тип трябва да е по-голям от източника.
 byte -> short -> char -> int -> long -> float -> double 

Например преобразуването между цифров тип данни в char или Boolean не се извършва автоматично. Освен това типовете данни char и Boolean не са съвместими един с друг. Да видим един пример.

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); } } 

Изход

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

В горния пример взехме променлива x и я преобразувахме в дълъг тип. След това дългият тип се преобразува в тип float.

Стесняващ тип отливка

Извиква се преобразуване на по-висок тип данни в по-нисък стесняване типово леене. Известен е още като изрично преобразуване или леене нагоре . Извършва се ръчно от програмиста. Ако не извършим кастинг, тогава компилаторът отчита грешка по време на компилиране.

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

Нека да видим пример за стесняване на тип кастинг.

В следващия пример извършихме отливането на стесняващ тип два пъти. Първо, преобразувахме двойния тип в дълъг тип данни, след като този дълъг тип данни се преобразува в тип int.

отмяна на последния ангажимент

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); } } 

Изход

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