Mis on Java-s automaatboksimine ja lahtrite tühistamine?



See artikkel annab teile põhjaliku lähenemisviisi Java Autoboxingule koos mõne näite paremaks mõistmiseks.

Enamasti kasutame programmi kirjutamisel mis tahes keeles primitiivseid andmetüüpe. Kuid on olukordi, kus primitiivsed andmetüübid jäävad alla ja on üks neist. Ürgsete andmetüüpide puuduste ületamiseks kasutame ümbrised . Seda protseduuri nimetatakse Autoboxiks. Me arutame üksikasjalikku Java-automaatse boksimise võimalust allpool oleva pistikupesa kaudu:

Alustagem.





Mis on Java poks ja automaatne boksimine?

Sageli kasutatakse samale kontseptsioonile viitamiseks poksi ja autoboksi. Kuid tegelikult pole need täpselt ühesugused. Räägime kõigepealt poksi kontseptsioonist. Mis on poks? Tundub, et hoiame midagi karbis sees? Jah, kui me ütleme, et poksime või pakkime ürgset andmetüüpi, tähendab see, et mähkime selle objekti moodustamiseks. Ikka segaduses? Võtame näite.

int Esinumber = 1

Muutuja „FirstNumber” on tüüpi int, mis on a . Mis siis saab, kui ma tahan muutuja 'FirstNumber' teisendada objektiks? Java pakub selleks viisi.



Integer SecondNumber = uus täisarv (2)

Pange tähele, et ‘SecondNumber’ ei ole int-tüüpi, kuid see on Integer-tüüpi objekt. Seda primitiivsete andmetüüpide objektiks teisendamise protsessi nimetatakse poksiks. Võite küsida, kuidas see on võimalik? Mõelgem, mis on selle ülesande täitmise lihtsaim viis. Saame luua a klass sisaldab ühte int-tüüpi atribuuti, konstruktorit, mis võtab int-tüüpi väärtuse ja omistab selle meie klassi atribuudile, ning mõningaid meetodeid selle int-väärtuse manipuleerimiseks. Selle kohta lisateabe saamiseks vaadake seda dokument .

Nägime, kuidas int-tüüpi saab muuta Java-ks. Kas on võimalik teisendada teisi primitiivseid andmetüüpe objektideks? Jah, Java-l on vastavad ümbriseklass erinevate primitiivsete andmetüüpide jaoks. Uurime neid selle postituse järgmises osas.

Autoboksimine

Siinkohal teame, mis on poks. Saame nüüd aru, mis on automaatne boksimine. Kui poksimise protsessi teeb kompilaator ilma selgesõnaliselt mainimata, nimetatakse seda autoboxinguks.



Mõistame seda näite abil:

import java.util.ArrayList import java.util.Listclass Box {public static void main (String [] args) {List Mylist = new ArrayList () for (int i = 0 i<10 i++) Mylist.add(i) } }

Nagu me varem arutasime aktsepteerib ainult objekte ja primitiivsed andmetüübid ei tööta. Ülaltoodud programmis ei teisendatud me tüübina täisarvu objektideks, kuid programm täidab ilma tõrgeteta. Kuidas? Vastus sellele küsimusele on see, et koostaja tegi poksimisprotsessi automaatselt enne väärtuse lisamist ‘Mylist’ ja sellest ka nimi Autoboxing.

Mylist.add (Integer.valueOf (i))

Ülaltoodud koodirea lisab kompilaator meie programmi.

Märge- Eespool mainitud koodiklassi reas on enne meetodit valueOf () mainitud nimi 'Integer', kuna valueOf () on staatiline meetod. Rohkem näiteid leiate aadressilt dokumendid .

Lahtrite eemaldamine ja automaatkastimine

Me nägime kuidas algandmete tüübist teisendatakse objektideks. Kuid see on vaid pool loost. Loo teine ​​pool on tüüpi ümbriseklassi objekti teisendamine algeliseks andmetüübiks kasti eemaldamine .

Näiteks-

Integer FirstNumber = uus täisarv (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)

Väljund- 1

Autoboks - Kui kompilaatori poolt ilma selgesõnaliselt mainimata tehtud lahtipakkimise protsessi nimetatakse Autonboxinguks.

Näiteks-

Täisarv = uus täisarv (20) int arv = arv

Ülaltoodud kood on Autounboxingu näide. Järgmises jaotises õpime pakendiklasside kohta.

xml-faili sõelumine Java-s

Pakendiklassid

Teisendasime tüübi muutuja intl Integer tüüpi objekti. See täisarvuklass on ümbrisklass. Java-s on nende jaoks saadaval pakendiklass . Need ümbriseklassid aitavad meil teisendada primitiivtüübist vastavaks ümbrisklassi tüüpi objektiks. Väärtuste manipuleerimisel on kasulikud ümbriseklasside meetodid.

Alltoodud tabel räägib meile primitiivse andmetüübi ja selle vastava ümbrisklassi kohta.

Ürgne tüüp Mähkmeklass

boolean

Boolean

tsau

Bait

char

Iseloom

ujuk

Ujuk

int

Täisarv

pikk

Pikk

lühike

Lühike

topelt

Topelt

Pange tähele Wrapperi klasside suurtähti.

Nii oleme jõudnud selle artikli lõppu, mis käsitleb autobokse Java-s. Kui soovite rohkem teada saada, vaadake järgmist autor Edureka, usaldusväärne veebipõhine õppefirma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud selleks, et õpetada teid nii Java-põhimõistete kui ka edasijõudnute kontseptsioonide jaoks koos erinevate Java-raamistikega nagu Hibernate & Spring.

Kas teil on meile küsimus? Palun mainige seda selle ajaveebi kommentaaride jaotises “Java-autoboksimine” ja võtame teiega ühendust niipea kui võimalik.