v Jave typové odlievanie je metóda alebo proces, ktorý prevádza dátový typ na iný dátový typ oboma spôsobmi manuálne aj automaticky. Automatickú konverziu vykoná kompilátor a manuálnu konverziu vykoná programátor. V tejto časti budeme diskutovať typové odlievanie a jeho typy so správnymi príkladmi.
Typové odlievanie
Prevod hodnoty z jedného dátového typu na iný dátový typ je známy ako typové odlievanie .
Typy typového odlievania
Existujú dva typy typového odlievania:
- Odlievanie typu rozšírenia
- Odlievanie typu zúženia
Odlievanie typu rozšírenia
Konverzia nižšieho dátového typu na vyšší sa nazýva rozširovanie typové odlievanie. Je tiež známy ako implicitná konverzia alebo zvrhnutie . Vykonáva sa automaticky. Je to bezpečné, pretože nie je šanca prísť o dáta. Koná sa, keď:
- Oba typy údajov musia byť navzájom kompatibilné.
- Cieľový typ musí byť väčší ako typ zdroja.
byte -> short -> char -> int -> long -> float -> double
Napríklad konverzia medzi numerickým dátovým typom na char alebo Boolean sa nevykoná automaticky. Typy údajov char a Boolean tiež nie sú navzájom kompatibilné. Pozrime sa na príklad.
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); } }
Výkon
Before conversion, the value is: 7 After conversion, the long value is: 7 After conversion, the float value is: 7.0
Vo vyššie uvedenom príklade sme vzali premennú x a skonvertovali ju na dlhý typ. Potom sa dlhý typ prevedie na typ float.
Odlievanie typu zúženia
Konverzia vyššieho dátového typu na nižší sa nazýva zúženie typové odlievanie. Je tiež známy ako explicitná konverzia alebo odlievanie . Robí to manuálne programátor. Ak nevykonáme pretypovanie, kompilátor ohlási chybu v čase kompilácie.
double -> float -> long -> int -> char -> short -> byte
Pozrime sa na príklad odlievania typu zúženia.
V nasledujúcom príklade sme odlievanie typu zúženia vykonali dvakrát. Najprv sme skonvertovali typ double na typ údajov long potom, čo sa tento typ údajov long skonvertoval na typ 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); } }
Výkon
Before conversion: 166.66 After conversion into long type: 166 After conversion into int type: 166