Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
cirepair()ill(10)istart();
direpair()istart();
Systemioutiprintln(c+"\n"+d);
distop()ill(10);
//iii
coda:
SamochódnrrejWA1090-BROKEN
SamochódnrrejWB2010-BROKEN
SamochódnrrejWA1090-MOVING
SamochódnrrejWB2010-MOVING
Zauważmyużytecznośćkowariancjitypówwyniku:przedeniowaliśmywklasieCar
metodystop()irepair()tylkopoto,byzapewnićodpowiednitypichwyniku,dzięki
czemumożliwestałysięodwołaniarepair()il()istop()ill().
2.7.Przedeniowaniemetodwwyliczeniach
WklasachVehicleiCarmetodatoString()wykorzystywałaniejawniewywołanie
metodytoString()wyliczeniaVehStatenp.wtakichfragmentach:
"jestwstanie"+state;
"Samochódnrrej"+nrRej+"-"+getState();
Tuzarównostate,jakiwynikwywołaniagetState()jesttypuenumVehState,ato
wyliczenie,jakjużwiemy(por.rodz.1.2),jestspecjalnąklasą.DziedziczyonaklasęEnum
zpakietujava.langiprzydołączaniuwartościelementówwyliczeniadonapisówniejawnie
wywoływanajestmetodatoString()zklasyEnum.Wwynikuwidzieliśmytakienapisy
jak:STOPPED,BROKEN,MOVING.
Skorozwyliczeniamimożemypostępować(prawie)takjakznormalnymiklasami,
tonicniestoinaprzeszkodzie,abywVehStateprzedeniowaćmetodętoString()
zklasyEnum(zob.kod2.5).
publicenumVehState{
BROKEN("ZEPSUTY"),STOPPED("STOI"),MOVING("JEDZIE");
privateStringopis;
VehState(Strings){opis=s;}
publicStringtoString(){
returnopis;
}
}
Kod2.5.PrzedeniowaniemetodytoString()wenum
2.7.Przedeniowaniemetodwwyliczeniach
57