Johdatus Java-tyypin muuntamiseen

Kun muuttujat samoin kuin erityyppiset vakiot kootaan lausekkeeseen, ne voidaan muuttaa samanlaiseksi. Tätä tekniikkaa yhden ennalta määritetyn tyypin muuttamiseksi toiseksi tunnetaan Java-tyyppinä muunnoksena.

Tyypin muuntaminen

Ohjelmointikielissä käytetään 2 erityyppistä muuntamista.

1. implisiittinen tyyppimuutos

Jos tyyppimuuntaminen suoritetaan välittömästi kääntäjän kautta ilman ohjelmoijan osallistumista, tyyppimuunnos tunnetaan implisiittisenä muunnoksena. Kääntäjä kannustaa perusteellisesti jokaista operandia kohti suurimman operandin tietotyyppiä. Tietojen menetystä ei tapahdu koko tietojenmuuntamisen ajan.Ei ole mahdollisuutta heittää poikkeusta muunnoksen kautta, joten se tunnetaan tyyppiturvallisena. Pienemmän määrän muuntaminen liian suureksi lukumääräksi voi olla implisiittinen muuntaminen. Kokonaislukutyyppisen datan muuntaminen kelluvaksi.

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

// Tämä voi olla implisiittinen muunnos, koska kelluva voi olla suurempi kuin kokonaisluku, joten tiedon puute ja myöskään poikkeus.

2. Täsmällinen tyyppimuutos

Tyyppimuunnos, joka voidaan suorittaa ohjelmoijan avulla, tunnetaan nimenomaisena tyyppimuuntona. Pohjimmiltaan ohjelmoija ilmaisee tietyntyyppiseksi. Täsmällinen tyyppimuutos voi olla nimeltään tippeily. Tietojen menetys voi tapahtua tai ei välttämättä tapahtua tietojen muuntamisen aikana. Siksi yksityiskohtien katoamisen todennäköisyys on olemassa. se voi heittää virheen, jos se ehkä yrittää suorittaa ilman erillistä tarkastusta. Isomman numeron muuttaminen pienemmäksi numeroksi voi olla nimenomainen muuntaminen.

float k=123.456
int i= (int) k

// tämä voi olla eksplisiittinen muuntaminen samoin kuin (int) on typecast, operaattori. Tässä vaiheessa saatamme ehkä onnistua välttämään poikkeusta, mutta voit löytää näkyvän tietojen menetyksen. eli i = 123

// .456 voidaan pudottaa muuntamisprosessissa

Tyyppi Muuntaminen Java

Kuten muutkin ohjelmointikielet, Java-ohjelmassa on 2 muunnoksen tyyppiä:

Implisiittinen tyyppimuutos

  • Tätä kutsutaan yleensä laajentumiseksi, ja ne voidaan tehdä automaattisesti, koska siirrymme laajempiin tietotyyppeihin. Joten jos meillä on 32-bittinen kokonaisluku ja haluamme siirtyä 64-bittiseen kokonaislukuun, se on leveämpi. Joten arvoa voidaan siirtää turvallisesti, jotta ne voidaan tehdä epäsuorasti. Ja kääntäjän on tehtävä päätös näiden muuntamisten tekemisestä, ja säännöt ovat melko yksinkertaisia.
  • Jos meillä on lauseke, jossa on useita (sekoitettuja) kokonaislukukokoja, jos meillä on lyhyt ja pitkä, riippumatta siitä, mikä on suurin kokonaisluku, mitkä asiat muuntavat sen. Joten jos teemme operaation lyhyellä ja pitkällä, lyhyt heitetään epäsuorasti mukana.
  • Jos suoritamme operaation sekoitettujen liukulukujen kanssa, joten meillä on kelluva ja kaksinkertainen, ne menevät aina kaksinkertaiseen, koska kaksinkertainen on suurin liukuluku.
  • Ja sitten, jos meillä on toiminto, joka käyttää sekoitettuja kokonaislukuja ja liukulukuja, kääntäjä heittää yhtälön suurimpaan liukulukuun. Joten jos teemme operaation pitkillä ja pinnalla, pitkät heitetään eteenpäin.
  • Jos teemme operaation pitkällä ja tuplalla, pitkä sitten heitetään kaksinkertaiseksi.

Epäselvä tyyppimuutos

  • Suoritamme nimenomaisesti koodissamme, kun käytät tätä valuoperaatiota. Kun teemme niin, otamme vastuun kaikesta mitä tapahtuu tällaisen muunnoksen seurauksena. Tämän vuoksi voimme suorittaa sekä laajentavan muuntamisen että kapean. Joten laajentuminen siirtyy 32-bittisestä sanoen 64-bittiseksi, kapenee, siirtyy 64-bittisestä alas 32-bittiseksi. Meidän pitäisi vain tietää, että tiedämme, mitä voi tapahtua.
  • Jos teemme nimenomaisen valetun kelluvan pisteen kokonaislukuun, niin liukulukuilla voi olla murto-osa, kokonaisluku ei voi, joten mikä tahansa murto-osa putoaa, kun heitämme kelluvan kokonaislukuun.
  • Haluat olla varovainen suorittaessasi kaventavaa muunnosta. Jos meillä on 64-bittinen kokonaisluku, se pystyy pitämään arvoja, jotka ovat liian suuret sopimaan 32-bittiseen kokonaislukuun.
  • Joten jos heitämme sen 64-bittisen 32-bittiseksi, ohjelma todella tekee sen, mutta jos arvo on liian suuri sopimaan 32-bittiseen, saat siitä outoja tuloksia. Joten haluat varmistaa, että kun valaat sitä tekemällä kapenevaa valintaa, tiedät, että tekemäsi on turvallista.
  • Ja viimeinen on vain se, että haluat olla varovainen muuntaessasi kokonaisluvusta liukulukuun, koska jos sinulla on kokonaisluku, jolla on paljon merkitseviä numeroita, liukulukujen tallennustavan takia, saatat menettää osan nuo merkitsevät numerot.

Esimerkkejä tyypin muuntamisesta

Esimerkkejä jäljempänä mainituista tyyppimuutoksista:

Koodi:

Meillä on täällä yksinkertainen ohjelma, jotkut ilmoitukset yläosassa, kelluva, kaksinkertainen, tavullinen, lyhyt ja pitkä, ja muuttujat on nimetty kumpikin auttamaan tunnistamaan, millaisia ​​niiden tyypit ovat kuin floatVal,

Koodi:

pitkä on pitkäVal

Koodi:

Ja ohjelma tulostaa vain menestysviestin, jos se suoritetaan.

Joten katsotaanpa vain kuinka jotkut tyyppimuunnoksista tulevat tässä pelaamaan. Joten ensinnäkin, mennään vain eteenpäin ja luodaan muuttuja. Meillä on vähän ja kutsumme sitä vain tulokseksi.

Itse asiassa mennään eteenpäin ja kutsutaan sitä tulokseksi1. Ja tehdään vain yksinkertainen tehtävä. Ja niin ensin me vain määrittelemme siihen byteVal. Nyt kuten odotamme, jos menemme eteenpäin ja ajamme tämän, aja niin onnistuneesti.

Koodi:

lähtö:

Tiedämme, että se on kelvollinen määritys, koska tavu voidaan määrittää lyhyeksi, koska se on laajeneva muunnos.

Jos otamme tämän byteVal-tiedoston ja teemme sen sijaan longVal-arvoksi, niin nyt on todella pitkä, jos ajamme tämän, saamme täällä virheilmoituksen, jossa sanotaan yhteensopimaton tyyppi, mahdollinen muuntamisen menetys pitkästä lyhyeksi.

Koodi:

Joten mitä voimme tehdä täällä, voimme tehdä nimenomaisen näyttelijän. Teemme vain lyhyen tämän eteen. Joten nyt se on voimassa, jotta voimme käyttää sitä.

Koodi:

Ja tietysti se toimii. Koska pitkä ei voinut mennä lyhyeksi, koska se oli kaventava käännös.

lähtö:

Mutta asettamalla nimenomainen näyttelijä sen eteen, nyt se on pätevä. Jos haluamme, voimme laittaa valitun merkinnän hyvin selkeästi ja sanoa, että tiedätkö, tiedämme, vaikka tavujen muuntaminen on laillista, haluamme nimenomaisesti osoittaa, että siirrämme sen sijoittamalla lyhyet valinnat sinne, voimme tehdä että, ja se on täysin laillista.

Koodi:

lähtö:

Joten nyt katsotaan toista skenaariota. Aiomme luoda toisen muuttujan, jota kutsutaan tulos2 , ja tulos2 on myös lyhyt. Ja mitä haluamme tehdä täällä, otamme vain tavu-arvomme ja haluamme vähentää longVaalin. Nyt tiedämme, että se ei ole laillista, koska lausekkeen tulos on siinä olevan suurimman kokonaisluvun koko, joka on pituus.

Koodi:

Joten jos suoritamme tämän, saamme virheen sanomalla, että ei ole kelvollista muuntaa pitkää lyhyeksi.

Mutta sanotaan, että haluamme mennä eteenpäin ja pitää tämän tuloksen lyhyenä. Meidän on tehtävä näyttelijä. Mutta haluamme, että tämä aika on koko tuloksen arvo tässä. Joten mitä aiomme tehdä, se asettaa lyhyet näyttelijät sen eteen.

Laita lyhyt näyttelijä sen eteen tänne. Ja kääri koko asia sulkeisiin. Ja aja se.

Koodi:

Se toimii onnistuneesti.

lähtö:

Julista nyt toinen muuttuja nimeltään tulos3, mutta julista tämä pitkäksi. Joten saatiin tulos 3, ja mitä me teemme täällä, me määritämme, että longVal - floatVal. Joten suoritamme, että virhe menetetään muuntamalla muutos kelluvasta pitkäksi, koska aina, kun meillä on kokonaislukutyyppi ja mikä tahansa liukuluku, tyyppi on tulos.

Koodi:

Joten mennään eteenpäin ja muutetaan tuloksemme nyt kelluvaksi. Joten tekemällä kellua, meidän pitäisi voida mennä eteenpäin ja ajaa se. Ja aja menestyksekkäästi.

Koodi:

lähtö:

Mutta nyt, jos otamme floatVaalin tänne ja muuntamme sen kaksoisarvona ja jos yritämme suorittaa tämän, saamme virheen, koska sanotaan, että tulos tulee olemaan kaksinkertainen, koska kun teet kokonaisluvun ja liukuluku, se on yhtälön suurimman liukulukujen koko.

Koodi:

Joten mennään eteenpäin ja tehdään tästä tuloksesta kaksinkertainen, jotta nyt voimme suorittaa sen.

Koodi:

lähtö:

johtopäätös

1. Muuttujat ovat Java-tyyppisiä
2. Alkeelliset tyypit

  • Kokonaisluku-, liukuluku-tyypit, char-tyyppi, Boolean-tyyppi

3. Tyyppimuutos

  • Meidän on usein siirryttävä eri tyyppien välillä, koska koska ohjelmistamme, koska ne muuttuvat monimutkaisemmiksi, liittyy todennäköisesti useita tietotyyppejä.
  • Kääntäjä voi käsitellä laajentuneita tyyppimuunnoksia, siirtyä tyypistä toiseen, joka voi pitää suurempia arvoja,
  • Mutta voit myös käyttää suoratoistoa sellaisten konversioiden suorittamiseen, joita kääntäjä ei pysty suorittamaan automaattisesti.

Suositellut artikkelit

Tämä on opas tyypin muuntamiseen Java-versiossa. Tässä keskustellaan johdannosta, tyyppimuunnosta Java-versiossa, kuten implisiittisestä ja eksplisiittisestä, sekä eri tilanteita käyttävistä esimerkeistä. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja-

  1. Rakentaja Java
  2. Lajittelu Java
  3. Rakentaja Java
  4. JCheckBox Java
  5. Heitä vs heittää | 5 suosituinta eroa, jotka sinun pitäisi tietää
  6. Kuinka toteuttaa valintaruutu Bootstrap-sovelluksessa
  7. Muuntaminen Java-sovelluksissa esimerkkien avulla