Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
cirepair()ifill(10)istart();
direpair()istart();
Systemioutiprintln(c+"\n"+d);
distop()ifill(10);
//iii
coda:
SamochódnrrejWA1090-BROKEN
SamochódnrrejWB2010-BROKEN
SamochódnrrejWA1090-MOVING
SamochódnrrejWB2010-MOVING
Zauważmyużytecznośćkowariancjitypówwyniku:przedefiniowaliśmywklasieCar
metodystop()irepair()tylkopoto,byzapewnićodpowiednitypichwyniku,dzięki
czemumożliwestałysięodwołaniarepair()ifil()istop()ifill().
2.7.Przedefiniowaniemetodwwyliczeniach
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,abywVehStateprzedefiniowaćmetodętoString()
zklasyEnum(zob.kod2.5).
publicenumVehState{
BROKEN("ZEPSUTY"),STOPPED("STOI"),MOVING("JEDZIE");
privateStringopis;
VehState(Strings){opis=s;}
publicStringtoString(){
returnopis;
}
}
Kod2.5.PrzedefiniowaniemetodytoString()wenum
2.7.Przedefiniowaniemetodwwyliczeniach
57