na Jawie, odlewanie typu to metoda lub proces, który konwertuje typ danych na inny typ danych, ręcznie i automatycznie. Konwersja automatyczna wykonywana jest przez kompilator, a konwersja ręczna przez programistę. W tej części omówimy odlewanie typu I jego typy z odpowiednimi przykładami.
Odlewanie typu
Konwersja wartości z jednego typu danych na inny typ danych jest tzw odlewanie typu .
Rodzaje odlewania typów
Istnieją dwa rodzaje rzutowania typu:
- Odlew typu poszerzającego
- Odlewanie typu zwężającego
Odlew typu poszerzającego
Nazywa się konwersją niższego typu danych na wyższy poszerzanie odlewanie typu. Znany jest również jako ukryta konwersja Lub rzucanie w dół . Odbywa się to automatycznie. Jest bezpieczny, bo nie ma szans na utratę danych. Ma to miejsce gdy:
- Obydwa typy danych muszą być ze sobą kompatybilne.
- Typ docelowy musi być większy niż typ źródłowy.
byte -> short -> char -> int -> long -> float -> double
Na przykład konwersja pomiędzy typem danych numerycznych na typ char lub Boolean nie jest wykonywana automatycznie. Ponadto typy danych char i Boolean nie są ze sobą kompatybilne. Zobaczmy przykład.
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); } }
Wyjście
Before conversion, the value is: 7 After conversion, the long value is: 7 After conversion, the float value is: 7.0
W powyższym przykładzie wzięliśmy zmienną x i przekonwertowaliśmy ją na typ długi. Następnie typ długi jest konwertowany na typ zmiennoprzecinkowy.
Odlewanie typu zwężającego
Konwersja wyższego typu danych na niższy nazywa się zwężenie odlewanie typu. Znany jest również jako wyraźna konwersja Lub rzucanie się . Robi się to ręcznie przez programistę. Jeśli nie wykonamy rzutowania, kompilator zgłosi błąd w czasie kompilacji.
double -> float -> long -> int -> char -> short -> byte
Zobaczmy przykład rzutowania typu zawężającego.
W poniższym przykładzie dwukrotnie wykonaliśmy odlewanie typu zwężającego. Najpierw przekonwertowaliśmy typ double na typ danych long, a następnie przekonwertowaliśmy typ danych long 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); } }
Wyjście
Before conversion: 166.66 After conversion into long type: 166 After conversion into int type: 166