Avtoupakovka és avtoraspakovka
Áttekintés fajta kagyló és csomagolás értékek
Mint tudja, a Java nyelv használata a bázis típusú (más néven egyszerű), mint például int vagy dupla, tárolására alapvető adattípusok által támogatott nyelvet. Tárolni az adatokat, mert nagyobb teljesítményű alaptípusokat használják, hanem tárgyakat. Ebben az esetben a tárgyak használata hozzátéve elfogadhatatlan költségeket, még a legegyszerűbb számítás. Így az alaptípusok nem része az objektumok hierarchiáját, és nem öröklik a Object osztályban.
Annak ellenére, hogy a teljesítménynövekedés által nyújtott alaptípus, vannak olyan helyzetek, amelyek megkövetelik a kötelező benyújtása egy tárgy. Például, ha nem tudja átadni a változót a módszerrel az alaptípus paraméterként hivatkozunk. Emellett számos szabványos adat struktúra által végrehajtott Java, működik tárgyakat, és ezért nem tudja használni ezeket a struktúrákat tárolására alaptípus. Ezekre (és egyéb) esetek, Java egy shell esetében, amelyeket olyan osztályok, magukba az egyszerű típusú adatok objektumot. A továbbiak osztályok membrán típusú.
Az érték a bázis típusú van kapszulázva a héj idején tervezése az objektumot. Csomagolt érték így lehetséges, hogy újra hívja módszerek egyikével meghatározott shell. Például minden shell numerikus típusok hez az alábbi módszerekkel:
Mindegyik módszer értékét adja vissza a megadott alap típus. Például Long típusú objektum visszatérési értéke az egyik beépített numerikus típusok, beleértve a rövid, két- vagy hosszú.
értékeket a kapszulázási eljárás tárgya az úgynevezett csomagolás (boksz). Eljövetele előtt Java 2 5.0 verzió, minden csomagolás kézzel a programozó által létre példányt a héj a kívánt értéket. A fenti leírás húr kód érték 100 csomagoljuk kézzel Egész objektum típusa:
Az extrakciós eljárás a membrán típusú értékek úgynevezett kicsomagolás (Unboxing). És még egyszer, eljövetele előtt Java 2 5.0 verzió az összes kicsomagolás kézzel történik hívja a héj a módszert, hogy az érték az objektum.
A következő kódsort értéket a tárgy IOB kicsomagolva kézzel változó típusa int:
Ebben az esetben intValue () metódus visszaad egy értéket int típusú objektum IOB. Mint azt korábban kifejtettük, vannak más módszerek eltávolítani az objektumot a értékét egy másik numerikus típusú, mint például egy bájt, rövid, hosszú, kettős vagy float. Például így az értéke a hosszú típus IOB kifogást meg kell hívni iOb.longValue () metódust. Így érték lehet kicsomagolni egyszerű változó típusa különbözik a kagyló fajtáját.
Kezdve az eredeti változata a Java nyelvet, a csomagolás és kicsomagolás manuálisan végezze el ugyanazt az alapvető eljárást követve az előző példákban. Bár ez a módszer a csomagolás és kicsomagolás munkákat unalmas és hibára hajlamos, mivel azt a programozó manuálisan létrehozni egy megfelelő tárgyat csomagolási értékek, és ha szükséges, kicsomagolás kifejezetten beállítva a megfelelő változót az alaptípus. Szerencsére Java 2, v5.0 radikálisan modernizálására ezeket a fontos eljárások bevezetésével avtoupakovki / kicsomagolás eszköz.
Basics avtoupakovki / kicsomagolás
Due avtoupakovke feleslegessé manuális létrehozásának célja, hogy magukba értékeit egy egyszerű típus. Csak akkor kell rendelni ezt az értéket mutató egy objektum-héj típusú. A Java nyelv automatikusan létrehoz Önnek ezt az objektumot. A következő sorban egy olyan eljárás példáját, hogy modern Integer objektum tárolására értéke 100:
Felhívjuk figyelmét, hogy semmilyen tárgy nem jön létre kifejezetten a működés új. A Java nyelv elvégzi ezt automatikusan.
Minden alkatrész az Ön számára a Java nyelvet.
Listing 2.1 ábra egy rövid programot, amely magában foglalja az összes fenti fragmensek, és bemutatja az alapokat avtoupakovki / dekompressziós mechanizmust
Listing 2.1. Bemutató alkalmazás avtoupakovki / dekompressziós
Megjegyezzük továbbá, hogy nem kell külön létrehozni egy Egész objektum, hogy a csomag értéke 100, és nincs szükség hívni intValue () metódus kicsomagolni ezt az értéket.
Avtoupakovka és módszerek
Listing 2.2. Avtoupakovka / dekompressziós módszer paraméterek és visszatérési értékek számukra
2.2 Listing a program megjeleníti a várható eredmények:
A fenti program módszer beállítja a paramétert az Integer és visszatér egy int eredményt. A fő () módszer a test m () továbbítunk 100. Amint arra számít, egy objektum típusú Integer, továbbított érték automatikusan csomagolva. Ezután a módszer, amely visszaadja az egyenértékű az érvelését, hanem egy egyszerű int típusú. Ez ahhoz vezet, hogy az automatikus kicsomagolás a változó v. Ezenfelül, az eljárás fő () IOB objektum hozzárendelünk egy értéket, int típusú, amelynek hatására annak avtoupakovku. A fő előnye az, hogy minden konverziót automatikusan történik.
Avtoupakovka / kicsomagolás kifejezésekben
Általában, avtoupakovka / dekompressziós történik, amikor szükséges az átalakítás a tárgy vagy az objektumot. Ez vonatkozik a kifejezéseket. Ezek numerikus objektum automatikusan csomagolják. Az eredmény a újracsomagolt, ha szükséges. Tekintsük a program listában 2.3.
Listing 2.3. Avtoupakovka / dekompressziós kifejezések belsejében
A következő a program lezárása, amely bemutatja a munkája eredményeiről.
Fordítson különös figyelmet a következő kódsort listában 2,3:
Ez növekedést okoz az egység értéke a csomagolt tárgy a IOB. Ez a művelet a következő: IOB objektum nyomásmentesítjük, a értéke növekszik, és az eredmény újra csomagolt.
Listing 2.4. Feldolgozás numerikus Különböző típusú objektumok azonos kifejezést
A következő a program eredményeként a 2.4 ábra.
Mint látható, a Dob és a Double tárgy és IOB egy Egész résztvevő objektum hozzáadásával, és az eredmény újra csomagolt és tárolt objektum DOB.
Ha a kifejezés értéke egy switch-et, csomagolatlan IOB objektum lekérése és int.
A példaprogramok azt mutatják, hogy a jelenléte avtoupakovki / kicsomagolás él numerikus objektum szempontjából egyszerű és intuitív. A múltban ezt a kódot kellene beszúrni metódushívások mint intValue ().
Avtoupakovka / kicsomagolás logikai szimbólum értékek és
Kivéve burkolatok numerikus típusok, a Java nyelv is biztosít wrapper az adattípusok logikai és karakter. Ezek az úgynevezett logikai, karakter, ill. Azt is alkalmazni avtoupakovka / kicsomagolás. Tekintsük a program listában 2.5.
Listing 2.5. Avtoupakovka / kicsomagolás Boolean és jellem
A következő a program lezárása listában 2,5, eredményeit mutatja be munkáját:
Sőt, most egy logikai objektum lehet használni, hogy ellenőrizzék a Java-ciklus szereplők. Amikor a logikai objektumot használunk feltételes kifejezést a while ciklus, az tegye / közben, automatikusan kicsoma- egyenértékű egy primitív logikai típusú. Például, a következő fragmentum most teljesen korrekt.
Segítség avtoupakovki / kicsomagolás hiba megelőzésére
Amellett, hogy a kényelem, mely tartalmaz egy mechanizmust avtoupakovki / kicsomagolás, ez segíthet a hibák megelőzésére. Tekintsük a program listában 2.6.
Listing 2.6. Hiba történt a kibontás közben manuálisan
Vigyázat
Most, hogy a Java nyelv eszközöket tartalmaz avtoupakovki / kicsomagolás, akkor hajlamos lehet arra, hogy csak numerikus objektum integer vagy float típusú, teljesen felhagy az egyszerű adattípusok. Például, hála a avtoupakovki / kicsomagolás most már lehetséges, hogy írjon kódot, mint az alább.
Példa rossz felhasználása avtoupakovki / dekompressziós Double a, b, c;
1. Kevesebb, mint fél év, mert egyszer emlékezett Java 5 van :)
2.
Annak ellenére, hogy a teljesítménynövekedés által nyújtott alaptípus, vannak olyan helyzetek, amelyek megkövetelik a kötelező benyújtása egy tárgy. Például, ha nem tudja átadni a változót a módszerrel az alaptípus paraméterként hivatkozunk. [Quote]
3.
[Quote] int m (Integer v) <
vissza v; // automatikus unbox int
>
Segítség avtoupakovki / kicsomagolás hiba megelőzésére
---------------
Sajnálom az én magyar
Andriy Zayats aka Rebbit
BR