1. Burkolattípusok listája
Tudja, hogy a Java-nak 8 primitív típusa van, amelyek nem osztályok. Egyrészt ez jó – egyszerűek és kevés helyet foglalnak el. Másrészt, néha az órákra éppen szükségünk van. A következő leckében megtudhatja, hogy pontosan miért.
Szóval mit lehet tenni?
A Java ötödik verziójától kezdve minden primitív típus kapott egy ikerosztályt. Minden ilyen osztály egyetlen mezőt tárol egy adott típusú értékkel. Ezeket az osztályokat wrapper típusoknak nevezzük , mivel primitív értékeket csomagolnak osztályokba.
Itt található ezeknek a típusoknak a listája. Tudsz valamit?
Primitív típus | Burkolat osztály |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A primitív típusok nevei kisbetűvel kezdődnek, de a wrapper osztályok nevei nagybetűvel kezdődnek. Néhány osztálynév is kicsit hosszabb: Integer
helyett int
és Character
helyett char
.
A wrapper osztályok összes objektuma megváltoztathatatlan ( változhatatlan ).
Az osztály egyszerűsített kódja Integer
így néz ki:
Kód | jegyzet |
---|---|
|
Változókonstruktor A metódus értéket ad vissza A statikus metódus új objektumot hoz létre egy változóhoz Integer int |
2. A konvertálása an int
-raInteger
A wrapper típusok a primitív testvéreik megfelelőinek számítanak: könnyen létrehozhatunk egy primitív típusnak megfelelő burkoló objektumot.
Használjuk az int típust példaként annak elemzésére, hogy a primitív típusok hogyan hatnak egymásra a megfelelő burkolótípusokkal. A kód az an-ról int
an-ra Integer
és fordítva a következőképpen néz ki:
int
Ahhoz, hogy egy -et konvertálhasson Integer
, meg kell írnia ezt a kódot:
Integer name = new Integer(value);
Ahol name
a változó neve Integer
, és value
a becsomagolt int
érték.
Példák:
Kód | jegyzet |
---|---|
|
|
|
|
|
És az an konvertálásához Integer
meg int
kell írnia ezt a kódot:
int name = variable.intValue();
Ahol name
egy változó neve int
, és variable
egy objektumra való hivatkozás Integer
.
Példák:
Kód | jegyzet |
---|---|
|
|
|
|
|
|
|
|
3. Autobox és unboxing
De még az egyszerű műveleteket sem Integer
könnyű megírni a típussal.
Mint korábban említettük, a Integer
típus megváltoztathatatlan ( változhatatlan ). Integer
Új értékkel rendelkező objektum létrehozásához int
kifejezetten új objektumot kell létrehoznia Integer
. Ennek ellenére könnyű megszerezni int
egy objektumban tárolt érték értékét Integer
– csak hívja a intValue()
metódust.
Példa:
Kód | Leírás |
---|---|
|
Becsomagolás 5 egy Integer objektumba Az érték lekérése az objektumból Hozzon Integer létre egy új Integer objektumot (egyenlő 10-zel) |
Ez elég nehézkes kód, nem gondolod?
A Java készítői így gondolták, ezért megtanították a fordítónak, hogyan kell ezeket a műveleteket automatikusan elvégezni. Az an- int
nak automatikus konvertálását autoboxing-nakInteger
( az érték automatikus dobozba helyezése), a fordított műveletet (egy an- vá alakítását) unboxing- nak nevezzük .Integer
int
A kódod | Amit a fordító lát |
---|---|
|
|
|
|
|
|
Az autoboxing és unboxing funkciónak köszönhetően biztonságosan hozzárendelhet egy int
változóhoz Integer
és fordítva. Bármilyen bonyolultságú kifejezést írhat anélkül, hogy különbséget tenne a int
és Integer
típusok között.
Példák:
Kód | Amit a fordító generál |
---|---|
|
|
|
|
4. A wrapper változók összehasonlítása
Az automatikus dobozolás és a kicsomagolás egyszerű és átlátható folyamatok. Szükség szerint használunk utasításokat, szükség szerint new Integer()
hívjuk meg a metódust.intValue()
Minden szépen és egyszerűen működik Önnek, programozónak. Ne feledje, hogy ha egy és egy -t hasonlít össze , akkor az összehasonlítás referencia és nem értékek alapján történik.Integer
Integer
Kód | Konzol kimenet |
---|---|
|
|
|
|
A a
és b
változók nem tárolnak int
értékeket. Tárolnak hivatkozásokat az objektumokra. Ez azt jelenti, hogy ne feledje, hogyan kell őket helyesen összehasonlítani:
Rossz | Jobb |
---|---|
|
|
GO TO FULL VERSION