Dažniausiai rašydami programą bet kuria kalba mes naudojame primityvius duomenų tipus. Tačiau yra situacijų, kai primityvūs duomenų tipai nesiekia ir yra vienas iš jų. Norėdami įveikti Primityvių duomenų tipų trūkumus, mes naudojame vyniotuvai . Ši procedūra vadinama „Autoboxing“. Aptarsime išsamų „Java“ automatinį naršymą per žemiau pateiktą lizdą:
- Kas yra „Java“ boksas ir automatinis naršymas?
- Išpakavimas ir automatinis dėžutės naudojimas
- Vyniotojų klasės
Pradėkime.
Kas yra „Java“ boksas ir automatinis naršymas?
Boksas ir „Autoboxing“ dažnai vartojami vadinant tą pačią sąvoką. Tačiau iš tikrųjų jie nėra visiškai vienodi. Pirmiausia pakalbėkime apie bokso sąvoką. Kas yra boksas? Panašu, kad mes kažką laikome dėžutėje, tiesa? Taip, kai sakome, kad mes boksuojame arba įvyniojame primityvų duomenų tipą, tai reiškia, kad mes juos suvyniojame, kad suformuotume objektą. Vis dar sumišęs? Paimkime pavyzdį.
int Pirmasis skaičius = 1
„FirstNumber“ kintamasis yra int tipo, kuris yra a . Ką daryti, jei noriu konvertuoti kintamąjį „FirstNumber“ į objektą? „Java“ suteikia būdą tai padaryti.
Sveikasis skaičius Antrasis skaičius = naujas sveikasis skaičius (2)
Atkreipkite dėmesį, kad „SecondNumber“ nėra int tipo, bet jis yra Integer tipo objektas. Šis primityvių duomenų tipų pavertimo į objektą procesas vadinamas boksu. Galite paklausti, kaip tai įmanoma? Pagalvokime, koks yra paprasčiausias būdas atlikti šią užduotį. Mes galime sukurti klasė kuriame yra vienas int tipo atributas, konstruktorius, kuris ima int tipo vertę ir priskiria ją mūsų klasės atributui, ir kai kurie metodai, kaip manipuliuoti šia int reikšme. Norėdami sužinoti daugiau apie tai, kreipkitės į tai dokumentas .
Mes pamatėme, kaip int tipą galima konvertuoti į Java. Ar yra galimybė kitus primityvius duomenų tipus paversti objektais? Taip, „Java“ turi atitinkamą vyniojimo klasė skirtingiems primityviems duomenų tipams. Mes juos nagrinėsime kitame šio įrašo skyriuje.
Autobokso sistema
Šiuo metu mes žinome, kas yra boksas. Dabar supraskime, kas yra „Autoboxing“. kai bokso procesą atlieka kompiliatorius be aiškaus paminėjimo, vadinamas „autoboxing“.
Supraskime tai su pavyzdžiu:
„Microsoft SQL“ serverio pamokos pradedantiesiems
importuoti java.util.ArrayList importuoti java.util.Listclass Box {public static void main (String [] args) {List Mylist = new ArrayList () for (int i = 0 i<10 i++) Mylist.add(i) } }
Kaip aptarėme anksčiau priima tik objektus, o primityvūs duomenų tipai neveikia. Pirmiau pateiktoje programoje mes nekonvertavome tipo Integer tipo objektų, kuriuos programa vis tiek vykdo be klaidų. Kaip? Atsakymas į šį klausimą yra tas, kad kompiliatorius automatiškai atliko bokso procesą prieš pridėdamas reikšmę „Mylist“, taigi ir pavadinimą „Autoboxing“.
„Mylist.add“ („Integer.valueOf“ (i))
Pirmiau nurodytą kodo eilutę į mūsų programą įtraukė kompiliatorius.
Pastaba- Pirmiau nurodytoje kodo eilutėje eilutės pavadinimas „Integer“ minimas prieš metodą valueOf (), nes valueOf () yra statinis metodas. Daugiau pavyzdžių rasite dokumentai .
Išpakavimas ir automatinis dėžutės naudojimas
Mes matėme kaip pirmykščių duomenų tipo paverčiami objektais. Bet tai tik pusė istorijos. Kita istorijos pusė konvertuoja tipo įvyniojimo klasės objektą į jo primityvų duomenų tipą išpakavimas .
Pavyzdžiui-
Sveikas skaičius Pirmasis skaičius = naujas Sveikasis skaičius (1) int Antrasis skaičius = Pirmasis skaičius.intValue () System.out.println (SecondNumber)
Rezultatas - 1
Automatinis boksas- Kai kompiliatoriaus atliekamas išpakavimo procesas be aiškaus paminėjimo vadinamas Autounboxing.
Pavyzdžiui-
Sveikas skaičius = naujas sveikas skaičius (20) int skaičius = skaičius
Aukščiau pateiktas kodas yra „Autounboxing“ pavyzdys. Kitame skyriuje sužinosime apie įvyniojimo klases.
Vyniotojų klasės
Konvertavome tipo kintamuoju intl sveikojo tipo objektu. Ši sveikųjų klasė yra įvyniojimo klasė. „Java“ kiekvienam yra prieinama pakavimo klasė . Šios pakavimo klasės padeda mums konvertuoti kintamąjį iš primityvaus tipo į atitinkamą paketo klasės tipo objektą. Apibūdinimo klasių metodai yra naudingi manipuliuojant vertėmis.
Žemiau esančioje lentelėje pasakojama apie primityvų duomenų tipą ir atitinkamą paketo klasę.
Pirmykštis tipas | Vyniotuvo klasė |
loginis | Būlio |
Ate | Baitas |
char | Charakteris |
plūdė | Plūdė |
tarpt pl / sql išimčių tvarkymas | Sveikasis skaičius |
ilgas | Ilgas |
trumpas | Trumpas |
dvigubai | Dvigubai |
Atkreipkite dėmesį į „Wrapper“ klasės didžiųjų raidžių rašymą.
Taigi mes baigėme šį straipsnį apie „Autoboxing Java“. Jei norite sužinoti daugiau, patikrinkite sukūrė patikima internetinė mokymosi įmonė „Edureka“. „Edureka“ „Java J2EE“ ir SOA mokymo ir sertifikavimo kursai yra skirti mokyti jus tiek pagrindinėms, tiek pažangesnėms „Java“ koncepcijoms kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.
Turite mums klausimą? Prašau tai paminėti šio tinklaraščio komentarų skyriuje „Autoboxing in Java“ ir mes kuo greičiau susisieksime su jumis.