Ú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.
Upravte třídy z předchozí úlohy, aby dělaly, co mají.
Uložte je do patřičného balíku.
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.
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í.