W tym samouczku dowiemy się o rzutowaniu typu Java i jego typach na przykładach.
Zanim dowiesz się o rzutowaniu typu Java , upewnij się, że znasz typy danych Java.
Typ Casting
Proces konwersji wartości jednego typu danych ( int
, float
, double
, etc.) dla innego typu danych są znane jako rzutowania.
W Javie istnieje 13 typów konwersji typów. Jednak w tym samouczku skupimy się tylko na dwóch głównych typach.
1. Odlewanie typu poszerzenia
2. Rzutowanie typu zawężającego
Aby dowiedzieć się więcej o innych typach konwersji typów, odwiedź witrynę Java Type Conversion (oficjalna dokumentacja języka Java).
Odlewanie typu poszerzenia
W rzutowaniu typu poszerzania Java automatycznie konwertuje jeden typ danych na inny typ danych.
Przykład: Konwersja int na double
class Main ( public static void main(String() args) ( // create int type variable int num = 10; System.out.println("The integer value: " + num); // convert into double type double data = num; System.out.println("The double value: " + data); ) )
Wynik
Wartość całkowita: 10 Wartość podwójna: 10,0
W powyższym przykładzie przypisujemy int
zmienną typu o nazwie num do double
zmiennej typu o nazwie data.
Tutaj Java najpierw konwertuje int
dane typu na double
typ. A następnie przypisz go do double
zmiennej.
W przypadku rzutowania typu poszerzającego niższy typ danych (mający mniejszy rozmiar) jest konwertowany na wyższy typ danych (mający większy rozmiar). W związku z tym nie ma utraty danych. Dlatego ten typ konwersji następuje automatycznie.
Uwaga : jest to również znane jako rzutowanie typu niejawnego .
Rzutowanie typu zawężającego
W zawężającym rzutowaniu typów ręcznie konwertujemy jeden typ danych na inny, używając nawiasów.
Przykład: zamiana double na int
class Main ( public static void main(String() args) ( // create double type variable double num = 10.99; System.out.println("The double value: " + num); // convert into int type int data = (int)num; System.out.println("The integer value: " + data); ) )
Wynik
Wartość podwójna: 10,99 Wartość całkowita: 10
W powyższym przykładzie przypisujemy double
zmienną typu o nazwie num do int
zmiennej typu o nazwie data.
Zwróć uwagę na linię,
int data = (int)num;
Tutaj int
słowo kluczowe w nawiasie wskazuje, że zmienna num jest konwertowana na int
typ.
W przypadku zawężającego rzutowania typów , wyższe typy danych (mające większy rozmiar) są konwertowane na niższe typy danych (mające mniejszy rozmiar). Stąd utrata danych. Dlatego ten rodzaj konwersji nie następuje automatycznie.
Uwaga : jest to również znane jako rzutowanie typu jawnego .
Zobaczmy kilka przykładów konwersji innych typów w Javie.
Przykład 1: Konwersja typu z int na String
class Main ( public static void main(String() args) ( // create int type variable int num = 10; System.out.println("The integer value is: " + num); // converts int to string type String data = String.valueOf(num); System.out.println("The string value is: " + data); ) )
Wynik
Wartość całkowita to: 10 Wartość ciągu to: 10
W powyższym programie zwróć uwagę na linię
String data = String.valueOf(num);
Tutaj użyliśmy valueOf()
metody klasy String Java do konwersji zmiennej typu int na łańcuch.
Przykład 2: Konwersja typu z String na int
class Main ( public static void main(String() args) ( // create string type variable String data = "10"; System.out.println("The string value is: " + data); // convert string variable to int int num = Integer.parseInt(data); System.out.println("The integer value is: " + num); ) )
Wynik
Wartość ciągu to: 10 Wartość całkowita to: 10
W powyższym przykładzie zwróć uwagę na linię
int num = Integer.parseInt(data);
Tutaj użyliśmy parseInt()
metody Integer
klasy Java do konwersji zmiennej typu łańcuchowego na int
zmienną.
Uwaga : Jeśli zmienna łańcuchowa nie może zostać przekonwertowana na zmienną całkowitą, NumberFormatException
występuje wyjątek o nazwie .