În Java, tip turnare este o metodă sau un proces care convertește un tip de date într-un alt tip de date în ambele moduri manual și automat. Conversia automată se face de către compilator și conversia manuală este efectuată de programator. În această secțiune, vom discuta tip turnare și tipurile sale cu exemple potrivite.
Tip turnare
Convertirea unei valori dintr-un tip de date în alt tip de date este cunoscută ca tip turnare .
Tipuri de tip turnare
Există două tipuri de turnare tip:
- Tip lărgire Turnare
- Turnare tip îngustare
Tip lărgire Turnare
Se numește conversia unui tip de date inferior într-unul superior lărgirea tip turnare. Este cunoscut și ca conversie implicită sau aruncarea jos . Se face automat. Este sigur pentru că nu există nicio șansă de a pierde date. Are loc atunci când:
- Ambele tipuri de date trebuie să fie compatibile între ele.
- Tipul țintă trebuie să fie mai mare decât tipul sursă.
byte -> short -> char -> int -> long -> float -> double
De exemplu, conversia între tipul de date numerice în char sau boolean nu se face automat. De asemenea, tipurile de date char și boolean nu sunt compatibile între ele. Să vedem un exemplu.
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); } }
Ieșire
Before conversion, the value is: 7 After conversion, the long value is: 7 After conversion, the float value is: 7.0
În exemplul de mai sus, am luat o variabilă x și am convertit-o într-un tip lung. După aceea, tipul lung este convertit în tipul float.
Turnare tip îngustare
Se numește conversia unui tip de date mai mare într-unul inferior îngustarea tip turnare. Este cunoscut și ca conversie explicită sau turnarea în sus . Se face manual de către programator. Dacă nu efectuăm casting, atunci compilatorul raportează o eroare de compilare.
double -> float -> long -> int -> char -> short -> byte
Să vedem un exemplu de turnare tip îngustare.
În exemplul următor, am efectuat turnarea de tip îngustare de două ori. În primul rând, am convertit tipul dublu în tip de date lung după ce tipul de date lung este convertit în tipul 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); } }
Ieșire
Before conversion: 166.66 After conversion into long type: 166 After conversion into int type: 166