Cvičenie 5 - Ošetrenie výnimiek, Práca s kolekciami

Cieľom piateho cvičenia je precvičiť si definovanie vlastných typov výnimiek, ošetrenie kontrolovaných výnimiek a základnú prácu so zoznamami a množinami. Názvy a typ premenných a metód sú zapísané v UML notácii.

Úlohy

Úloha 5.1

Pridajte do triedy ZakladneZariadenie z úlohy 4.3 metódu equals(Object obj): boolean a hashCode(): int tak, aby sa v nich porovnával názov zariadenia.

Úloha 5.2

Upravte triedu Dom z úlohy 4.6 tak, aby ste namiesto odkazu na vykurovanie a osvetlenie mali zoznam zariadení. Metódy zapniSvetlo, vypniSvetlo, zapniKurenie, vypniKurenie a nastavTeplotu upravte tak, že sa zapnú alebo vypnú všetky zariadenia daného typu (typ môžete otestovať operátorom instanceof).

Úloha 5.3

Vytvorte novú triedu pre kontrolovanú výnimku s názvom ChybaZariadenia. Pridajte do nej členskú premennú, ktorá odkazuje na chybné zariadenie z úlohy 4.1. Pridajte konštruktory ChybaZariadenia(), ChybaZariadenia(sprava: String), ChybaZariadenia(sprava: String, zariadenie: Zariadenie).

Úloha 5.4

Vytvorte novú triedu pre kontrolovanú výnimku ChybaVykurovania, ktorá je odvodená od triedy ChybaZariadenia. Pridajte konštruktory ChybaVykurovania(), ChybaVykurovania(sprava: String) a ChybaVykurovania(sprava: String, vykurovania: Vykurovanie).

Úloha 5.5

Upravte metódy zapni(): void a vypni(): void rozhrania Zariadenie tak, aby základná implementácia v triede ZakladneZariadenie vyvolalo výnimku ChybaZariadenia vtedy, keď už je zariadenie zapnuté pri volaní zapni(): void, resp. vypnuté pri volaní vypni(): void.

Úloha 5.6

Upravte metódu nastavTeplotu(teplota: int): void z úlohy 4.9 tak aby sa namiesto IllegalArgumentException vyvolala výnimka ChybaVykurovania.

Úloha 5.7

Upravte program z úlohy 4.10 tak aby spracoval výnimky ChybaZariadenia a ChybaVykurovania. Pre obsluhu ChybaZariadenia vypíšte správu. Pri obsluhe ChybaVykurovania nastavte teplotu na 25 a znovu vyvolajte tú istú výnimku.

Úloha 5.8

Vytvorte triedu Priklad5_8 s metódou main. V metóde main vytvorte zoznam a pomocnú premennú slovo: String. Pridajte do zoznamu niekoľko slov a v cykle pomocou iterátora odstráňte zo zoznamu všetky výskyty daného slova.

Úloha 5.9

Vytvorte triedu Priklad5_9 s metódou main. V metóde main vytvorte zoznam do ktorého pridajte reťazce tak aby sa niektoré viac krát opakovali. Napíšte kód ktorý odstráni zo zoznamu duplicitné hodnoty a pritom zachová poradie prvkov.

Úloha 5.10

Vytvorte triedu Priklad5_10 s metódou main. V metóde main vytvorte množiny set1 s prvkami {"januar", "februar", "marec"} a set2 s prvkami {"januar", "februar", "april", "maj"}. Napíšte program, ktorí pomocou metód rozhrania java.util.Set vytvorí zjednotenie množín, ich prienik a doplnok množiny set1 voči zjednotenej množine.