Šioje pamokoje pavyzdžių pagalba sužinosime apie „Java Type Casting“ ir jos tipus.
Prieš sužinodami apie „ Java Type Casting“ , įsitikinkite, kad žinote apie „Java“ duomenų tipus.
Tipas liejimas
Konvertavimo vieno duomenų tipą (vertę procesas int
, float
, double
, ir tt) į kitą duomenų tipas yra žinomas kaip Typecasting.
„Java“ yra 13 tipų keitimo tipų. Tačiau šioje pamokoje mes sutelksime dėmesį tik į pagrindinius 2 tipus.
1. Plėtimo tipo liejimas
2. Siaurėjančio tipo liejimas
Norėdami sužinoti apie kitus tipų keitimo tipus, apsilankykite „Java Type Conversion“ (oficiali „Java“ dokumentacija).
Plėtimo tipo liejimas
„ Widening Type Casting“ „ Java“ automatiškai konvertuoja vieną duomenų tipą į kitą.
Pavyzdys: konvertavimas į dvigubą
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); ) )
Rezultatas
Sveiko skaičiaus reikšmė: 10 Dviguba vertė: 10,0
Pirmiau pateiktame pavyzdyje int
tipo kintamajam pavadiname numerį priskiriame double
tipo kintamąjį, pavadintą duomenimis.
Čia „Java“ pirmiausia konvertuoja int
tipo duomenis į double
tipą. Tada paskirkite jį double
kintamajam.
„ Widening Type Casting“ atveju apatinis duomenų tipas (turintis mažesnį dydį) konvertuojamas į aukštesnį duomenų tipą (turintis didesnį dydį). Taigi duomenys neprarandami. Štai kodėl tokio tipo konversija vyksta automatiškai.
Pastaba : tai taip pat žinoma kaip numanomo tipo perdavimas .
Siaurėjantis tipo liejimas
Dalyje „ Narrowing Type Casting“ mes rankiniu būdu konvertuojame vieną duomenų tipą į kitą, naudodami skliaustus.
Pavyzdys: Dvigubo konvertavimas į 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); ) )
Rezultatas
Dviguba reikšmė: 10,99. Sveiko skaičiaus vertė: 10
Pirmiau pateiktame pavyzdyje double
tipo kintamajam pavadinimu num priskiriame int
tipo kintamąjį, pavadintą duomenimis.
Atkreipkite dėmesį į eilutę,
int data = (int)num;
Čia int
skliaustuose esantis raktinis žodis rodo, kad kintamasis skaičius konvertuojamas į int
tipą.
Tuo atveju, kai susiaurėjimas tipas liejimas , didesnioji duomenų tipai (turintys didesnį dydį) yra konvertuojamas į mažesnes duomenų tipų (kurių mažesnio dydžio). Taigi prarandami duomenys. Štai kodėl tokio tipo konversija nevyksta automatiškai.
Pastaba : tai taip pat žinoma kaip aiškiojo tipo perdavimas .
Pažiūrėkime keletą kitų „Java“ tipo konversijų pavyzdžių.
1 pavyzdys: tipo konvertavimas iš int į eilutę
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); ) )
Rezultatas
Sveiko skaičiaus reikšmė yra: 10 Stygos vertė yra: 10
Aukščiau pateiktoje programoje atkreipkite dėmesį į eilutę
String data = String.valueOf(num);
Čia mes naudojome „ valueOf()
Java String“ klasės metodą, kad konvertuotume int tipo kintamąjį į eilutę.
2 pavyzdys: tipo konvertavimas iš eilutės į 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); ) )
Rezultatas
Stygos vertė yra: 10 Sveiko skaičiaus vertė yra: 10
Ankstesniame pavyzdyje atkreipkite dėmesį į eilutę
int num = Integer.parseInt(data);
Čia eilutės tipo kintamąjį pavertėme kintamuoju parseInt()
naudodami „Java“ Integer
klasės metodą int
.
Pastaba : Jei eilutės kintamojo negalima konvertuoti į sveiko skaičiaus kintamąjį, atsiranda išimtis, pavadinta NumberFormatException
.