Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Integer
Short
Byte
Long
Float
Double
Boolean
Obiektytychklasreprezentują(wsposóbobiektowy)daneodpowiednichtypów.
Mówimytuoopakowaniuliczby(czyteżdanejtypuboolowskiego),boliczba(lubwartość
true|false)jestumieszczonefiśrodku”obiektuodpowiedniejklasy,jakojegoelement.
Klasyopakowująceniedostarczajążadnychmetodoperowanianaliczbach,operatory
arytmetycznemożemyzaśstosowaćtylkowobecliczbowychtypówprostych.Aprzecież
częstopotrzebujemyliczbyjakoobiektu,ajednocześniejakotypuprostego–dowykonania
operacji.Musimywięcumiećzapakowaćliczbędoobiektuklasyopakowującej(byużyćjej
wtedy,gdywymaganyjestobiekt)iwyciągnąćjąstamtąd(gdypotrzebnesąobliczenia).
Typyprostemożemypakowaćirozpakowywaćfiręcznie”.Naprzykładobiektowyod-
powiednikliczby5typuintuzyskamy,tworzącobiektklasyInteger:
Integera=newInteger(5);
Zobiektutakiejklasymożemyliczbęfiwyciągnąć”zapomocąodpowiednichmetod,np.
inti=aiintValue();//zwracawartośćtypuint,"zawartą"wobiekciea
Podobnie:
Doubledd=newDouble(7i1);
doubled=ddidoubleValue();//d==7i1
Jesttojednakniecożmudne,dlategowJavie,poczynającodwersji5,wprowadzonomecha-
nizmzwanyautoboxingiem.
Autoboxingtoautomatyczneprzekształcanietypówprostychnatypyobiektówklas,
opakowującychtypyproste,iodwrotnie.
Przykładowomożemypisaćtak:
intn=1;
Integerin=n;//(1)
n=in+1;
//(2)zamiastiniintValue()+1
Winstrukcji(1)następujetzw.boxing,czyliopakowaniewartościtypuprostegownowy
obiektklasy(niemusimypisaćnewInteger(n),robitozanaskompilator).Winstrukcji
(2)zachodzinatomiasttzw.unboxing,czyliautomatycznepobraniewartościtypuprostego
zobiektuklasyopakowującej(niemusimypisaćiniintValue()).
1.9.Klasyopakowującetypyproste
37