Uvod u pretvorbu tipova na Javi

Nakon što se varijable, kao i konstante raznih vrsta, stave u izraz, mogu se promijeniti u sličan tip. Ova tehnika pretvaranja jednog unaprijed definiranog tipa u jedan drugi poznata je kao pretvorba tipa u Javi.

Vrsta pretvorbe

Postoje dvije različite vrste pretvorbe koje koristimo u programskim jezicima.

1. Neizvjesna pretvorba tipa

Ako se pretvorba tipa provodi odmah putem prevoditelja bez uključivanja programera, pretvorba tipa poznata je kao implicitna pretvorba tipa. Kompajler temeljno potiče svaki operand prema vrsti podataka najvećeg operanda.Ne gubitak podataka događa se tijekom pretvaranja podataka. Nema šanse da izbaci izuzeće tijekom pretvorbe i na taj način je poznat kao tip-siguran. Pretvorba veličine manje veličine u previše veći broj može biti implicitna konverzija. Transformacija cijelog broja u plutajući.

float i=0;
int j=10;
i=j;

// To može biti implicitna transformacija, jer float može biti veći od cijelog broja, stoga nema nedostatka podataka A također nije iznimka.

2. Izričita pretvorba tipa

Konverzija tipa koja se može nametnuti putem programera poznata je kao eksplicitna pretvorba tipa. u osnovi, programer postaje izraz određene vrste. Eksplicitna transformacija tipa može biti poznata kao typecasting. Gubitak podataka može se dogoditi ili se ne može dogoditi tijekom pretvorbe podataka. Stoga postoji vjerojatnost gubitka detalja. To bi moglo dovesti do pogreške ako se možda pokuša izvesti bez tipkanja. Transformacija većeg broja u manje veličine može biti eksplicitna konverzija.

float k=123.456
int i= (int) k

// ovo može biti eksplicitna konverzija, kao i, (int) je typecast, operator. U ovom trenutku možda ćemo uspjeti izbjeći iznimku, ali možete pronaći vidljivi gubitak podataka. tj. i = 123

// .456 može biti ispušteno u postupku pretvorbe

Unesite pretvorbu u Java

Kao i drugi programski jezici, u Javi postoje i dvije vrste pretvorbe:

Neizvjesna pretvorba tipa

  • To su općenito ono što nazivamo proširivanjem pretvorbe, a to se može izvesti automatski jer prelazimo na šire tipove podataka. Dakle, ako imamo 32-bitni cijeli broj i želimo preći na 64-bitni cijeli broj, to je širi. Na taj način vrijednost se može sigurno premjestiti tako da se oni mogu učiniti implicitno. A prevoditelj mora donijeti odluku o tome kako izvršiti te pretvorbe, a pravila su prilično jasna.
  • Ako u njemu imamo izraz s više (Mješovitih) cjelobrojnih veličina, ako imamo kratku i dugu, bez obzira na to koja je najveća cjelobrojna veličina, u šta će se stvari pretvoriti. Dakle, ako radimo operaciju s kratkom i dugom, kratka će se implicitno uključiti u dužinu.
  • Ako izvodimo operaciju sa miješanim veličinama s pomičnim zarezom, pa imamo float i double, oni će uvijek prelaziti na double jer je double najveća veličina s pomičnim zarezom.
  • A onda, ako imamo operaciju koja koristi miješane cjelobrojne tipove i tipove s pomičnim zarezom, prevoditelj će prebaciti na najveću plutajuću točku u jednadžbi. Dakle, ako radimo operaciju s dugim i na plovilu, dugačak će biti bačen u zrak.
  • Ako radimo operaciju s dugom i dvostrukom, dugačka će se tada baciti na dvostruku.

Izričita pretvorba tipa

  • Izričito djelujemo u našem kodu prilikom korištenja ove funkcije cast. Kad to učinimo, preuzimamo odgovornost za ono što se dogodi kao rezultat takve vrste pretvorbe. Zbog toga možemo izvesti i raširene pretvorbe i uske. Dakle, širenje ide od 32-bitnog do 64-bitnog, sužavanje, prelazak iz 64-bitnog u 32-bitni. Trebali bismo samo htjeti biti svjesni da znamo što bi se potencijalno moglo dogoditi.
  • Ako izričito izbacimo iz pomične točke u cijeli broj, tako da plutajuće točke mogu imati frakcijski dio, cijeli broj ne može, tako da bi svaki frakcijski dio bio ispušten kada bačemo taj plutajući dolje na cijeli broj.
  • Želite biti oprezni pri izvođenju sužavajuće pretvorbe. Ako imamo 64-bitni cijeli broj, on ima sposobnost zadržavanja vrijednosti koje su prevelike da bi se uklopile u 32-bitni cijeli broj.
  • Dakle, ako prenosimo 64-bitni na 32-bitni, program će to zaista i učiniti, ali ako je vrijednost prevelika da bi se mogla uklopiti u 32-bitnu, iz toga ćete dobiti neke čudne rezultate. Na taj način želite biti sigurni da kada to činite, činite sužavanje kad znate da je ono što radite sigurno.
  • I posljednje je upravo to što želite biti oprezni prilikom pretvaranja iz cijelog broja u plutajuću točku, jer ako imate cijeli broj s velikim brojem značajnih znamenki, zbog načina na koji je plutajuća točka pohranjena, mogli biste izgubiti dio one značajne znamenke.

Primjeri pretvorbe tipa

Dolje detaljno navedeni primjeri pretvorbe tipa:

Kodirati:

Ovdje imamo jednostavan program, neka deklaracija na vrhu, pluta, dvostruka, bajtova, kratka i duga, a varijable se imenuju kako bi pomogle identificirati kakve su njihove vrste kao float je floatVal,

Kodirati:

long je longVal

Kodirati:

A program samo ispisuje poruku uspjeha ako se pokrene.

Pa da samo vidimo kako se ovdje događa igra neke pretvorbe tipa. Dakle, prije svega, idemo samo naprijed i stvorimo varijablu. Imamo kratko i jednostavno ćemo to nazvati rezultatom.

U stvari, idemo naprijed i to nazivamo rezultatom1. A napravimo samo jednostavan zadatak. I prvo ćemo mu dodijeliti byteVal. Ako očekujemo, ako nastavimo i pokrenemo to, uspješno trčimo.

Kodirati:

Izlaz:

Znamo da je to valjana dodjela, jer se bajt može dodijeliti kratkom jer je to proširena konverzija.

Ako uzmemo ovaj byteVal i umjesto toga napravimo longVal, sada je zapravo dugačak, ako to pokrenemo, ovdje dobivamo poruku o pogrešci koja kaže nespojiv tip, mogući gubitak pretvorbe iz dugog u kratko.

Kodirati:

Dakle, ono što ovdje možemo učiniti je da možemo uraditi eksplicitni nastup. Samo ćemo to kratko staviti ispred ovoga. Dakle, sada vrijedi pa ga možemo pokrenuti.

Kodirati:

I naravno, uspijeva. Jer dugačak nije mogao prijeći u kratku jer je to bilo suženje pretvorbe.

Izlaz:

Ali, stavljajući eksplicitni cast ispred nje, sada je to valjano. Ako to želimo, možemo staviti notaciju cast vrlo eksplicitnu i reći da znate, znamo iako je bajtova pretvorba zakonita, želimo eksplicitno pokazati da je emitiramo tako da stavimo kratki cast unutra, možemo to učiniti to, i to je potpuno legalno.

Kodirati:

Izlaz:

Pa pogledajmo drugi scenarij. Stvorit ćemo drugu varijablu koju ćemo nazvati rezultat2 , a rezultat2 također je kratak. I što ovdje želimo učiniti je da samo uzmemo svoj byteVal, a želimo da oduzmemo longVal. Sada znamo da to nije legalno, jer će rezultat izraza biti veličina najvećeg cijelog broja u njemu, a to je dužina.

Kodirati:

Dakle, ako to pokrenemo, dobit ćemo pogrešku koja kaže da nije valjano pretvaranje dugog u kratko.

Ali recimo da želimo ići naprijed i zadržati taj rezultat kao kratak. Moramo napraviti cast. Ali želimo da ovaj put predstavimo vrijednost cjelokupnog rezultata ovdje. Dakle, ono što ćemo učiniti je ovdje staviti kratku glumu.

Ovdje stavite kratku cast. I cijelu stvar zamotajte u zagrade. I pokreni.

Kodirati:

Bit će uspješno pokrenut.

Izlaz:

Sada deklarirajte drugu varijablu koja se zove rezultat3, ali deklarirajte je kao dugu. Tako smo dobili rezultat 3, a što ćemo ovdje učiniti dodijelit ćemo tom našem longVal - floatVal. Tako da pokrenemo, greška se gubi pretvorbom pretvarajući se iz float u long, jer kad god imamo cijeli broj i bilo koji tip s pomičnom zarezom, rezultat će biti vrsta s pomičnom zarezom.

Kodirati:

Pa idemo naprijed i pretvorimo svoj rezultat sada u plutaju. Dakle, čineći taj plutač, trebali bismo biti u mogućnosti ići dalje i pokrenuti ga. I uspješno trčite.

Kodirati:

Izlaz:

Ali sada ako ovdje uzmemo floatVal i pretvorimo ovo u doubleVal, a ako to pokrenemo, dobit ćemo grešku, jer kaže da će rezultat biti dvostruk, jer kada napravite cijeli broj i plutajuću točku, to je veličina najveće plutajuće točke u jednadžbi.

Kodirati:

Dakle, idemo naprijed i učinimo ovaj rezultat dvostrukim, tako da ga sada možemo pokrenuti.

Kodirati:

Izlaz:

Zaključak

1. Varijable su snažno tipkane u Javi
2. Primitivni tipovi

  • Tipovi cijelih brojeva, tipovi s pomičnim zarezom, char, buolov tip

3. Vrsta pretvorbe

  • Često se moramo kretati između različitih vrsta, jer će naši programi, kako postaju složeniji, vjerojatno uključivati ​​više tipova podataka.
  • Sastavljač može obraditi pretvorbe tipa koje se šire, prelazeći s jedne vrste na drugu koja može sadržavati veće vrijednosti,
  • Ali pomoću kastinga možete izrijekom izvesti one vrste konverzija koje prevoditelj ne može izvršiti automatski.

Preporučeni članci

Ovo je vodič za pretvorbu tipova na Javi. Ovdje smo raspravljali o uvodu, pretvorbi tipa u javi, kao što je implicitna i eksplicitna, zajedno s primjerima koji koriste različite situacije. Možete pogledati i sljedeće članke da biste saznali više -

  1. Konstruktor na Javi
  2. Razvrstavanje u Javi
  3. Konstruktor na Javi
  4. JCheckBox na Javi
  5. Baciti protiv bacanja | Top 5 razlika koje biste trebali znati
  6. Kako implementirati potvrdni okvir u bootstrapu
  7. Pretvorba u Javi s primjerima

Kategorija: