Sissejuhatus Java tüübi teisendamiseks

Kui nii muutujad kui ka erinevat tüüpi konstandid koondatakse avaldis, saab neid muuta sarnaseks tüübiks. Seda ühe ettemääratletud tüübi teisendamise tehnikat nimetatakse Java-s tüübikonversiooniks.

Tüübi teisendus

Seal on 2 erinevat tüüpi teisendust, mida me kasutame programmeerimiskeeltes.

1. Tüüpiline kaudne teisendus

Kui tüübi teisendamine toimub kompilaatori kaudu koheselt ilma programmeerija osaluseta, siis nimetatakse tüübimuundust implitsiitseks teisenduseks. Kompilaator julgustab põhimõtteliselt iga operandi leidmist suurima operandi andmetüübi poole. Andmete kaotsimineku ajal andmeid ei kadu. Pole mingit võimalust, et teisenduse kaudu erandit visatakse ja seetõttu tuntakse seda tüüpi ohutuna. Väiksema suurusega koguse teisendamine liiga suureks arvuks võib olla kaudne teisendus. Täisarvutüübi andmete teisendamine ujukiks.

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

// See võib olla kaudne teisendus, kuna ujuk võib olla suurem kui täisarv, seetõttu puudub andmete puudumine ja ka erand.

2. Selge tüübi teisendus

Tüüpi teisendust, mida saab programmeerija kaudu jõustada, nimetatakse selgesõnaliseks tüüpi teisenduseks. põhimõtteliselt väljendab programmeerija teatud tüüpi muutumist. Selget tüüpi teisendust võib nimetada spetsiifiliseks muutmiseks. Andmete kaotsiminek võib andmete konverteerimise ajal tekkida või mitte. Seetõttu on tõenäoline, et üksikasjad kaovad. see võib visata tõrke, kui ta võib-olla proovib seda teha ilma spetsiifikat määramata. Suurema numbri teisendamine väiksemaks numbriks võib olla selgesõnaline teisendamine.

float k=123.456
int i= (int) k

// see võib olla nii eksplitsiitne teisendus kui ka (int) on spetsiifiline operaator. Sel hetkel võib meil õnnestuda erandist pääseda, kuid leiate andmete nähtava kadumise. st i = 123

// .456 saab teisendusprotsessis maha jätta

Tüüp Konversioon Java

Nagu teisedki programmeerimiskeeled, on javas ka teist tüüpi teisendusi:

Kaudne tüübi muundamine

  • Üldiselt kutsume neid laiendavaks konversiooniks ja neid saab teha automaatselt, kuna liigume laiemate andmetüüpide juurde. Nii et kui meil on 32-bitine täisarv ja tahame liikuda 64-bitisele täisarvule, on see laiem. Nii saab väärtust ohutult teisaldada, nii et seda saab teha kaudselt. Ja koostaja peab otsustama, kuidas neid teisendeid teha, ja reeglid on üsna sirged.
  • Kui meil on avaldis, milles on mitu täisarvulist arvu (segatud), kui meil on lühike ja pikk, siis mis iganes suurim täisarv on, milleks asjad selle teisendavad. Nii et kui me teeme operatsiooni lühikese ja pikaga, siis valatakse lühike kaudselt kaasa.
  • Kui teeme operatsiooni segatud ujukoma suurusega, nii et meil on ujuk ja topelt, lähevad nad alati topelt, kuna topelt on suurim ujukoma suurus.
  • Ja kui meil on operatsioon, mis kasutab segatüüpilisi täisarvu ja ujukoma tüüpe, siis valib kompilaator võrrandi suurima ujukoma. Nii et kui me teeme pika operatsiooni ja pinnasel, siis valatakse pikad pinnale.
  • Kui teeme operatsiooni pika ja kahega, siis valatakse pikk kahekordseks.

Selge tüübi teisendus

  • Selle ülekandeoperatsiooni kasutamisel täidame seda oma koodiga. Seda tehes võtame vastutuse selle eest, mis juhtub seda tüüpi konversiooni tagajärjel. Seetõttu võime teha nii laiendavat teisendamist kui ka kitsast. Nii et laienemine läheb 32-bitiselt 64-bitisele, kitseneb, läheb 64-bitiselt 32-bitisele. Me peaksime lihtsalt teadma, et teame, mis võib juhtuda.
  • Kui teeme selgesõnalise ujukoma täisarvuni, siis võib ujukomadel olla murdosa, täisarv ei saa, seega väheneb mõni murdarv, kui heidame selle ujuki täisarvuni.
  • Kitsendava konversiooni tegemisel peate olema ettevaatlik. Kui meil on 64-bitine täisarv, on sellel võime hoida väärtusi, mis on 32-bitisesse täisarvu mahutamiseks liiga suured.
  • Nii et kui me loodame selle 64-bitise 32-bitiseks, teeb programm seda tegelikult, kuid kui väärtus on 32-bitiseks mahutamiseks liiga suur, saate sellest veidraid tulemusi. Nii et soovite veenduda, et kui te seda valutate, teete kitsenevat castingut, siis teate, et see, mida teete, on ohutu.
  • Ja viimane on ainult see, et soovite täisarvult ujukomaks teisendamisel olla ettevaatlik, sest kui teil on täisarv, millel on palju märkimisväärseid numbreid, siis võite ujukoma salvestamise viisi tõttu kaotada osa need olulised numbrid.

Tüübi teisendamise näited

Allpool üksikasjalikult mainitud tüübi muundamise näited:

Kood:

Meil on siin lihtne programm, mõned deklaratsioonid ülaosas, hõljuv, topelt, bait, lühike ja pikk, ja mõlemad muutujad on nimetatud selleks, et aidata tuvastada, mis on nende tüüp nagu floatVal,

Kood:

pikk on pikkVal

Kood:

Ja kui see töötab, prindib programm lihtsalt õnnestumisteate.

Vaatame lihtsalt, kuidas siin osa tüüpi teisendusest mängu tuleb. Nii et kõigepealt lähme edasi ja loome muutuja. Meil on vähe ja nimetame seda lihtsalt tulemuseks.

Tegelikult lähme edasi ja nimetame seda tulemuseks1. Ja teeme lihtsalt lihtsa ülesande. Ja nii et kõigepealt määrame sellele lihtsalt byteVal. Nüüd, nagu me eeldame, kui see läheb edasi ja juhime seda, siis jookseme edukalt.

Kood:

Väljund:

Me teame, et see on kehtiv määramine, kuna baiti saab lühikeseks määrata, kuna see on laienev teisendus.

Kui me võtame selle byteVali ja muudame selle hoopis longValiks, siis nüüd on tegelikult pikk, kui seda käivitame, kuvatakse siin tõrketeade, mis ütleb, et tüüp ei sobi, teisendamise võimalik kaotus pikalt lühikeseks.

Kood:

Mida me siin siis teha saame, on see, et saame teha selgesõnalise hääle. Paneme selle lühikese ette. Nüüd on see kehtiv, et saaksime seda käivitada.

Kood:

Ja muidugi, see töötab. Sest pikk ei saanud lühikeseks minna, sest see oli kitsendav teisendus.

Väljund:

Kuid pannes selgesõnalise castingu ette, on see nüüd kehtiv. Kui tahame, võime panna märkuse väga selgesõnaliselt ja öelda, et teate, kuigi baitide teisendamine on seaduslik, tahame selgesõnaliselt näidata, et valime selle, pannes lühikese castimise sinna, saame teha ja see on täiesti seaduslik.

Kood:

Väljund:

Nüüd vaatame veel ühte stsenaariumi. Loome veel ühe muutuja, mida kutsume tulemuseks2 ja ka tulemus2 on lühike. Ja mida me siin teha tahame, on see, et me lihtsalt võtame oma byteVal'i ja me tahame pikaVali lahutada. Nüüd teame, et see pole seaduslik, kuna avalduse tulemus on selle suurima täisarvu suurus, st pikkus.

Kood:

Nii et kui me seda juhime, saame vea, öeldes, et pika teisendamine lühikeseks teisendamine pole õige.

Kuid ütleme nii, et tahame edasi minna ja hoida selle tulemuse lühikesena. Peame tegema cast. Kuid me tahame, et see aeg on kogu tulemuse väärtus siin. Nii et mida me kavatseme teha, see paneb lühikese hääle siin ette.

Pange lühike cast selle ette siia. Ja mässige kogu asi sulgudesse. Ja käivitage see.

Kood:

See töötab edukalt.

Väljund:

Nüüd kuulutage veel üks muutuja nimega tulemus3, kuid kuulutage see pikaks. Nii et saime tulemuse 3 ja mida me siin teeme, määrame, et meie longVal - floatVal. Nii et me jõuame nii, et viga kaotab teisendamise, muutes ujuki väärtuseks pikaks, sest alati, kui meil on täisarvutüüpi ja suvalist ujukoma tüüpi, on tulemuseks ujukoma tüüp.

Kood:

Liigume siis edasi ja teisendame oma tulemuse nüüd ujukiks. Niisiis, luues selle ujuki, peaksime saama edasi minna ja seda käivitada. Ja jookse edukalt.

Kood:

Väljund:

Kuid kui võtta siin floatVal ja teisendada see topeltväärtuseks ning kui proovime seda käivitada, siis saame vea, kuna öeldakse, et tulemus on kahekordne, kuna kui teete täisarvu ja ujukoma, on see võrrandi suurima ujukoma suurus.

Kood:

Läheme siis edasi ja teeme selle tulemuse kahekordseks, et nüüd saaksime selle joosta.

Kood:

Väljund:

Järeldus

1. Muutujad on Java-s tugevalt kirjutatud
2. Primitiivsed tüübid

  • Täisarvud, ujukoma tüübid, sümbolitüüp, tõeväärtuse tüüp

3. Tüübi teisendus

  • Peame sageli liikuma eri tüüpi vahel, kuna kuna meie programmid muutuvad keerukamaks, hõlmavad nad tõenäoliselt mitut andmetüüpi.
  • Kompilaator saab hakkama laienevate tüüpkonversioonidega, liikudes ühelt tüübilt teisele, mis mahutab suuremaid väärtusi,
  • Kuid saate castingu abil kasutada ka seda tüüpi konversioone, mida kompilaator ei saa automaatselt teostada.

Soovitatavad artiklid

See on Java tüübi teisendamise juhend. Siin käsitleme sissejuhatust, tüübi teisendamist javas, näiteks kaudset ja eksplitsiitset, koos näidetega, milles kasutatakse erinevaid olukordi. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Konstruktor Java
  2. Sorteerimine Java-s
  3. Konstruktor Java
  4. JCheckBox Java-s
  5. Viska vs viskab | 5 parimat erinevust, mida peaksite teadma
  6. Kuidas käivitada ruut Bootstrap
  7. Teisendus Java abil näidetega

Kategooria: