Zadání úlohy 5. (zadává se v týdnu od 3. listopadu)

Úloha je obdobou té předchozí.

Část Ia. Jde o to zmodifikovat třídy z předchozí úlohy, aby:

  • třídy LinearSearcher a BinarySearcher byly umístěny v balíku cz.muni.fi.{vaslogin}.searching2

  • a obě implementovaly rozhraní Searcher v balíku tomp.searching2.

  • Rozhraní Searcher je zatím v balíku tomp.searching2, přesuňte si je do cz.muni.fi.{vaslogin}.searching2 - nezapomeňte, že s přesunem do jiného balíku musíte změnit deklaraci package.

Jako společného předka těchto tříd v hierarchii dědičnosti použijte třídy AbstractSearcher, která bude (asi neúplně, protože je abstraktní) implementovat rozhraní Searcher.

Část Ib. Dále zmodifikujte třídy XXXMinMax z předchozí úlohy, aby:

  • byly také umístěny v balíku cz.muni.fi.{vaslogin}.searching2

  • obě implementovaly rozhraní SearcherMinMax.

  • Povšimněte si, že rozhraní SearcherMinMax rozšiřuje Searcher.

Jak postupovat:

  1. Upravte třídy z předchozí úlohy, aby dělaly, co mají.

  2. Uložte je do patřičného balíku.

  3. Do stejného balíku uložte také třídu Demo a upravte si ji tak, aby používala vaše třídy XXXSearcher, XXXSearcherMinMax.

  4. Třídy pro vyhledávání vyzkoušejte spuštěním vaší třídy Demo.

Část II. Na závěr reimplementujte (čili použijte a předělejte z úlohy 4.) do balíku cz.muni.fi.{vaslogin}.sorting2 také třídy BubbleSorter a QuickSorter tak, aby obě implementovaly rozhraní Sorter.

  • Rozhraní Sorter je zatím v tomp.sorting2, přesunete si je jako obvykle do cz.muni.fi.{vaslogin}.sorting2

  • Zdrojový kód rozhraní Sorter naleznete v balíku tomp.sorting2.

Při reimplementaci využijte společného abstraktního předka - třídu AbstractSorter, kterou si vytvoříte a umístíte do balíku cz.muni.fi.{vaslogin}.sorting2. Tato abstraktní třída bude částečně implementovat rozhraní Sorter - tj. bude implementovat ty metody, jež ve třídách BubbleSorter, QuickSorter vycházejí naprosto stejné.

Z praktických důvodů je vhodné nadeklarovat v této třídě například pomocnou metodu void swap(int i, int j), která prohodí v poli hodnoty na indexech i, j. Kontrolní otázka: Jaký přístupový modifikátor by tato metoda měla/mohla mít?

K reimplementovaným třídám sami vytvořte vhodné demo, které ukáže, že jsou funkční.

Obecné informace

Pozn: Pokud cvičící zadání modifikuje, je to OK. Tohle je vzorové zadání.

Za tyto úlohy dohromady získáte max. 5 bodů.