„Java“ tipo perdavimas (su pavyzdžiais)

Š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 inttipo kintamajam pavadiname numerį priskiriame doubletipo kintamąjį, pavadintą duomenimis.

Čia „Java“ pirmiausia konvertuoja inttipo duomenis į doubletipą. Tada paskirkite jį doublekintamajam.

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 doubletipo kintamajam pavadinimu num priskiriame inttipo kintamąjį, pavadintą duomenimis.

Atkreipkite dėmesį į eilutę,

 int data = (int)num; 

Čia intskliaustuose esantis raktinis žodis rodo, kad kintamasis skaičius konvertuojamas į inttipą.

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“ Integerklasės metodą int.

Pastaba : Jei eilutės kintamojo negalima konvertuoti į sveiko skaičiaus kintamąjį, atsiranda išimtis, pavadinta NumberFormatException.

Įdomios straipsniai...