Seminář 4 (Úkoly)

Úkol č.1

Upravte úkoly 1 až 5 z druhého semináře tak, aby:

  • třídy, které mají shodné metody, používaly vhodné rozhraní,
  • demonstrovaly použití polymorfismu, viz text k semináři.

Úkol č. 2

Navhrněte rozhraní Switchable, která bude mít dvě metody boolean turnOn() a void turnOff(). První metoda slouží k zapnutí nějakého objektu/zařízení a vrací true, pokud byla operace úspěšná, jinak vrací false. Metoda turnOff slouží k vypnutí objektu/zařízení.

Vytvořte dvě třídy Light a CheapLight reprezentující světlo a levné světlo, které se po několika zapnutích rozbije, viz text k druhému semináři.

Naprogramujte statickou metodu isCheapDevice(Switchable device), která na základě opakovaného zapnutí/vypnutí rozpozná, jestli bylo jako argument předáno běžné nebo laciné světlo. Uvažujte, že pokud zadaný objekt nevydrží dvacet opakovaných vypnutí a zapnutí, jedná se o levný výrobek.

Úkol č. 3

Rozšiřte třídu IntList z 6. úkolu z druhého semináře tak, aby obsahovala metodu int get(int index), která vrátí prvek v seznamu na zadaném indexu. Pokud takový prvek neexistuje, je chování nedefinováno.

Vytvořte třídu IntArray, která bude mít stejné metody jako třída IntList, avšak bude uchovávat hodnoty v poli. Tyto hodnoty budou předány v konstruktoru, kterému je možné předat libovolný počet čísel typu int.

Vytvořte a použijte rozhraní IntSequence, které bude reprezentovat posloupnost celých čísel a bude obsahovat společné metody tříd IntList a IntArray.

Vytvořte statickou metodu int sum(IntSequence seq), která vrátí součet čísel v dané posloupnosti celých čísel. Vyzkoušejte, že funguje správně pro IntList a IntArray.


Last update on 19. 9. 2025 01:14
Powered by Schemik.

© Petr Krajča, 2010, 2012
petr.krajca (at) upol.cz