V tomto tutoriálu se pomocí příkladů dozvíme o Java Type Casting a jeho typech.
Než se dozvíte o castingu Java Type , ujistěte se, že víte o datových typech Java.
Typ odlévání
Proces přeměny hodnotu jednoho datového typu ( int
, float
, double
, atd) na jiný typ dat je známý jako obsadit.
V Javě existuje 13 typů převodu typů. V tomto tutoriálu se však zaměříme pouze na hlavní 2 typy.
1. Odlévání typu rozšíření
2. Odlévání typu zúžení
Další informace o dalších typech převodu typů naleznete v části Převod typů Java (oficiální dokumentace prostředí Java).
Lití typu rozšíření
V Widening Type Casting Java automaticky převádí jeden datový typ na jiný datový typ.
Příklad: Převod 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); ) )
Výstup
Celočíselná hodnota: 10 Dvojitá hodnota: 10.0
Ve výše uvedeném příkladu přiřazujeme int
proměnné typu s názvem num double
proměnné typu s názvem data.
Zde Java nejprve převede int
typová data na double
typ. A poté jej přiřaďte k double
proměnné.
V případě Castening Type Casting se nižší datový typ (s menší velikostí) převede na vyšší datový typ (s větší velikostí). Proto nedochází ke ztrátě dat. Proto se tento typ převodu děje automaticky.
Poznámka : Toto se také nazývá implicitní odlévání typu .
Odlévání typu zúžení
V Narrowing Type Casting ručně převádíme jeden datový typ na jiný pomocí závorek.
Příklad: Převod dvojitého 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); ) )
Výstup
Dvojitá hodnota: 10,99 Celá hodnota: 10
Ve výše uvedeném příkladu přiřazujeme double
proměnné typu s názvem num int
proměnné typu s názvem data.
Všimněte si řádku,
int data = (int)num;
Zde int
klíčové slovo uvnitř závorky naznačuje, že proměnná num je převedena na int
typ.
V případě Narrowing Type Casting jsou vyšší datové typy (s větší velikostí) převedeny na nižší datové typy (s menší velikostí). Proto dochází ke ztrátě dat. Proto k tomuto typu převodu nedochází automaticky.
Poznámka : Toto se také nazývá Explicitní odlévání typu .
Podívejme se na některé příklady převodů jiných typů v Javě.
Příklad 1: Převod 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); ) )
Výstup
Hodnota celého čísla je: 10 Hodnota řetězce je: 10
Ve výše uvedeném programu si všimněte řádku
String data = String.valueOf(num);
Zde jsme použili valueOf()
metodu třídy Java String k převodu proměnné typu int na řetězec.
Příklad 2: Převod typu z řetězce 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); ) )
Výstup
Hodnota řetězce je: 10 Celočíselná hodnota je: 10
Ve výše uvedeném příkladu si všimněte řádku
int num = Integer.parseInt(data);
Zde jsme použili parseInt()
metodu třídy Java Integer
k převodu proměnné typu řetězce na int
proměnnou.
Poznámka : Pokud řetězcovou proměnnou nelze převést na celočíselnou proměnnou, NumberFormatException
dojde k výjimce s názvem .