Cieľom šiesteho cvičenia je precvičiť si prácu s generickými typmi. Názvy a typ premenných a metód sú zapísané v UML notácii.
Upravte úlohu 5.9 tak, aby ste použili generické typy pre zoznam a množinu.
Vytvorte triedu Program6_2 s metódou main. V metóde main vytvorte zoznam reťazcov do ktorého pridajte prvky tak aby sa niektoré hodnoty opakovali. Pomocou mapy spočítajte, koľko krát sa vyskytla v zozname každá hodnota. Zoznam a mapu definujte ako generický typ a využite automatické pretypovanie atomických hodnôt na objekty.
Vytvorte generické rozhranie Instrukcia s dvoma parametrami V, S a jednou metódou spracuj(V vstup): S.
Vytvorte triedy PlusJedna a MinusJedna, ktoré implementujú rozhranie Instrukcia pre číselný typ Integer a ktoré v metóde spracuj pripočítajú a odpočítajú hodnotu 1.
Vytvorte generickú triedu Procesor s dvoma parametrami V, S. Do triedy pridajte členskú premennú vystupy: List typu S, verejnú metódu getVystupy(): List a verejnú metódu vypocitaj(program: List, vstupy: List): void. Argument program je zoznam inštrukcií vhodného typu (rozhranie Instrukcia z úlohy 6.3) a argument vstupy je zoznam vstupov typu V. Metóda vypocitaj postupne spracuje vstup zodpovedajúcou inštrukciou a výstup pridá do zoznamu výstupov.
Vytvorte triedu Program s metódou main. V metóde main vytvorte premennú typu Procesor pre číselné vstupy a výstupy. Pre vstupy [1, 2, 3, 4] vypočítajte inštrukcie [+, -, +, -] kde '+' je inštrukcia typu PlusJedna a '-' inštrukcia typu MinusJedna.
Vytvorte rozhranie
Vytvorte generickú triedu ZakladnyObjekt, ktorý implementuje rozhranie GrafickyObjekt.
Vytvorte generickú triedu ZlozenyObjekt2D s parametrom T, generickou členskou premennou objekty: List<T> a metódou getObjekty(): List<T>. Parameter T ohraničte iba na dvojrozmerné základné objekty.
Vytvorte triedu Program s metódou main v ktorej vytvorte jeden zložený objekt do ktorého pridajte tri základné.