Bevezetés a Java típusú típuskonverzióhoz

Ha egyszer a változók, de a különféle típusú állandók is összeállnak egy kifejezésen belül, akkor hasonló típusokká változtathatók. Az egyetlen előre definiált típus átalakításának ezt a technikáját Java konvertáló típusnak nevezik.

Típuskonverzió

Kétféle konvertálás létezik, amelyeket a programozási nyelveken használunk.

1. Implicit típuskonverzió

Ha a típuskonverzió azonnal fordítógépen hajtódik végre a programozó bevonása nélkül, akkor a típuskonverziót implicit típuskonverziónak nevezzük. A fordító alapvetően minden operandust bátorít a legnagyobb operandus adattípusa felé. Az adatkonverzió során nincs adatvesztés. Nincs esély arra, hogy az átalakításon keresztül kivételt vegyen fel, és ezért típusbiztonságnak nevezzük. A kisebb méretű mennyiség sokkal nagyobb számmal történő átalakítása implicit átalakítás lehet. Az egész szám típusú adatok átalakítása úszóvá.

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

// Ez implicit transzformáció lehet, mivel az float nagyobb lehet, mint egy egész, ezért nincs adathiány és sem kivétel.

2. explicit típuskonverzió

A programozón keresztül végrehajtható típuskonverziót explicit típusú konvertálásnak nevezzük. alapvetõen a programozó kifejezést ad, hogy egy bizonyos típusúvá váljon. Az explicit típusú transzformáció typecasting néven ismert. Előfordulhat, hogy az adatok átalakítása során adatvesztés történik. Ezért létezik a részletek elvesztésének valószínűsége. hibát dobhat, ha esetleg próbálkozik végrehajtani gépelés nélkül. Nagyobb szám átalakítása kisebb méretűvé lehet explicit konvertálás.

float k=123.456
int i= (int) k

// ez lehet explicit konvertálás, valamint, hogy (int) typecast, operátor. Ezen a ponton előfordulhat, hogy elkerüljük a kivételt, de megtalálhatja az adatok látható veszteségét. azaz i = 123

// .456 lemondható az átalakítási folyamatból

Típuskonverzió Java-ban

Más programozási nyelvekhez hasonlóan a javaban is kétféle konvertálás létezik:

Implicit típuskonverzió

  • Általában ezeket nevezzük kibővítő konverziónak, és ezeket automatikusan meg lehet tenni, mert szélesebb adattípusokra költözünk. Tehát ha van 32 bites egész számunk, és 64 bites egész számra akarunk lépni, akkor az szélesebb. Tehát az érték biztonságosan mozgatható, így azokat implicit módon is meg lehet tenni. És a fordítónak el kell döntenie, hogyan kell ezeket a konverziókat végrehajtani, és a szabályok meglehetősen egyértelműek.
  • Ha van egy kifejezés, amelyben több (vegyes) egész szám van, ha rövid és hosszú, akkor a legnagyobb az egész méret, amit a dolgok konvertálnak. Tehát, ha rövid és hosszú műveletet hajtunk végre, akkor a rövidt implicit módon belefoglaljuk.
  • Ha kevert lebegőpontos méretű műveletet hajtunk végre, tehát van úszó és dupla, akkor mindig duplára kerülnek, mert a dupla a legnagyobb lebegőpontos méret.
  • És akkor, ha van olyan művelet, amely vegyes egész és lebegőpontos típusokat használ, akkor a fordító az egyenlet legnagyobb lebegőpontos pontjába dobja. Tehát, ha hosszú és úszó műveletet hajtunk végre, akkor a hosszút a felszínre dobjuk.
  • Ha hosszú és kettős műveletet hajtunk végre, akkor a hosszút kettősre kell vetni.

Explicit típuskonverzió

  • Kifejezetten teljesítünk a kódban, amikor ezt az cast műveletet használjuk. Amikor ezt megtesszük, felelősséget vállalunk azért, hogy mi történik az ilyen típusú átalakulás eredményeként. Emiatt mind a szélesítő átalakítást, mind a szűk átalakítást elvégezhetjük. Tehát kiszélesítve 32 bitesről 64 bitesre, szűkítve, 64 bitesről 32 bitesre. Csak azt kell tudnunk, hogy tudjuk, mi történhet.
  • Ha explicit leképezést hajtunk végre egy lebegőpontról egészre, azaz a lebegőpontoknak lehet tört része, egésznek nem lehet, tehát bármely frakcionált része esne le, ha azt egy egész számra dobnánk.
  • Legyen óvatos a szűkítő konverzió végrehajtásakor. Ha 64 bites egész számunk van, akkor képes olyan értékek megtartására, amelyek túl nagyak ahhoz, hogy beleférjenek egy 32 bites egészbe.
  • Tehát ha ezt a 64 bitet 32 ​​bitesnek adjuk, akkor a program valóban meg fogja tenni, de ha az érték túl nagy ahhoz, hogy beleférjen a 32 bites szintbe, akkor furcsa eredményeket kapsz erről. Tehát azt szeretné megbizonyosodni arról, hogy amikor szűkítő szerepet játszik, tudod, hogy az, amit csinálsz, biztonságos.
  • És az utolsó csak az, hogy óvatosnak kell lennie egy egész számról lebegőpontos átalakításra, mert ha egész számmal rendelkezik jelentős számjeggyel, a lebegőpontos tárolás módja miatt elveszítheti a azok a számjegyek.

Példák a típuskonverzióra

Az alább részletezett típuskonverziós példák:

Kód:

Van itt egy egyszerű programunk, néhány deklaráció tetején, úszó, dupla, byte, rövid és hosszú, és a változókat mindegyikük nevezi, hogy segítsenek azonosítani, hogy milyen típusúak az úszó floatVal,

Kód:

hosszú a longVal

Kód:

És a program csak kinyomtat egy sikeres üzenetet, ha fut.

Tehát csak nézzük meg, hogy a típus-átalakítás miként játszik itt játékot. Tehát mindenekelőtt menjünk előre és hozzunk létre egy változót. Van rövid, és csak az eredménynek nevezzük.

Valójában menjünk tovább és mondjuk eredménynek1. És csináljunk egy egyszerű feladatot. És így először csak hozzárendeljük a byteVal-t. Most, amire számítunk, ha előrehaladunk és ezt futtatjuk, akkor futjunk sikeresen.

Kód:

Kimenet:

Tudjuk, hogy ez egy érvényes hozzárendelés, mert bájt hozzárendelhető rövidre, mert ez egy kibővülő konverzió.

Ha viszont ezt a byteVal-t vesszük, és ehelyett longVal-rá tesszük, tehát valójában hosszú, ha ezt futtatjuk, egy hibaüzenetet kapunk, amelyben mondjuk, hogy az inkompatibilis típus, az átalakulás lehetséges hosszúról rövidre esik.

Kód:

Tehát, amit itt megtehetünk, egy kifejezett leadást tehetünk. Csak röviden teszünk előtte. Tehát most érvényes, így futtathatjuk.

Kód:

És természetesen működik. Mert a hosszú nem tudott rövidré válni, mert ez egy szűkítő konverzió volt.

Kimenet:

De ha a kifejezett szereplőket előtte helyezi, akkor az érvényes. Ha szeretnénk, akkor nagyon egyértelművé tehetjük a leadott jelölést, és azt mondhatjuk, hogy tudod, bár tudjuk, hogy bár a bájtváltás törvényes, kifejezetten meg akarjuk mutatni, hogy a rövid leadás oda-vissza beillesztésével megcsináljuk, meg tudjuk csinálni ez, és ez teljesen legális.

Kód:

Kimenet:

Tehát vessünk egy pillantást egy másik forgatókönyvre. Készítünk egy másik változót, amelyet eredmény2nek hívunk , és az eredmény2 szintén rövid. És amit itt szeretnénk csinálni, az az, hogy csak megkapjuk a byteVal-t, és le akarjuk vonni a longVal-t. Most tudjuk, hogy ez nem törvényes, mert a kifejezés eredménye lesz a benne lévő legnagyobb egész szám, azaz a hosszúság.

Kód:

Tehát ha ezt futtatjuk, akkor hibaüzenetet kapunk, amely azt mondja, hogy nem hosszú a hosszúról rövidre konvertálni.

De tegyük fel, hogy tovább akarunk menni, és ezt az eredményt rövid ideig megtartjuk. Szeretnénk leadni. De azt szeretnénk leadni, hogy ez az idő a teljes eredmény értéke itt. Tehát, amit fogunk csinálni, itt a rövid szólók állnak.

Tedd ide a rövid leadót. És tedd az egészet zárójelbe. És futtasd.

Kód:

Sikeresen fog futni.

Kimenet:

Most deklarálj egy másik változót, az eredményt3, de ezt hosszúnak deklaráld. Tehát kaptuk a 3. eredményt, és mit fogunk tenni itt, azt fogjuk rendelni, hogy a longVal - floatVal. Tehát azt állítottuk, hogy a hiba elveszíti az átalakulást lebegőssé hosszúrá konvertálva, mert amikor egész számtípus és bármilyen lebegőpontos típusunk van, az eredmény lebegőpontos típus lesz.

Kód:

Tehát menjünk tovább, és alakítsuk eredményünket most úszóvá. Tehát az úszó készítésével képesnek kell lennünk előremenni és futtatni. És futtasson sikeresen.

Kód:

Kimenet:

De most, ha ide vesszük a floatVal értéket, és konvertáljuk ezt doubleVal értékre, és ha megpróbáljuk ezt futtatni, akkor hibát kapunk, mert azt mondja, hogy az eredmény kettős lesz, mert ha egész számot és lebegőpontos értéket csinálsz, ez az egyenlet legnagyobb lebegőpontjának mérete.

Kód:

Tehát menjünk előre, és tegyük ezt az eredményt duplájára, így most futtathatjuk.

Kód:

Kimenet:

Következtetés

1. A változókat Java erősen gépelte
2. Primitív típusok

  • Egész számtípusok, lebegőpontos típusok, char típus, logikai típus

3. Típuskonverzió

  • Gyakran kell mozognunk a különböző típusok között, mert mivel a programjaink, mivel bonyolultabbá válnak, valószínűleg több adattípust vonnak maguk után.
  • A fordító képes kezelni a kiterjedő típusú konverziókat, egyik típusról a másikra mozogva, amely nagyobb értékeket képes tárolni,
  • Az casting használatával kifejezetten végrehajthatja az olyan típusú konverziókat is, amelyeket a fordító nem képes automatikusan végrehajtani.

Ajánlott cikkek

Ez egy útmutató a Java típusú típuskonverzióhoz. Itt tárgyaljuk a bevezetést, a típus konvertálást a java-ban, például implicit és explicit módon, valamint a példákat a különböző helyzeteket használva. A következő cikkeket is megnézheti további információkért -

  1. Kivitelező Java-ban
  2. Rendezés Java-ban
  3. Kivitelező Java-ban
  4. JCheckBox Java-ban
  5. Dobás és dobás | Öt legfontosabb különbség, amelyet tudnia kell
  6. Hogyan telepíthetem a jelölőnégyzetet a Bootstrap-ban
  7. Konverzió Java-ban példákkal

Kategória: