4it101»Java8pr 3 Reseni

Java8pr 3 Reseni

Příklad Absolutní hodnota - řešení

Následující řešení bude opět vycházet z doporučeného postupu. Nejprve je tedy nutné vytvořit funkční rozhraní. Abstraktní metoda zde bude mít jeden parametr typu int a bude vracet hodnotu také typu int (viz níže).


interface Funkce {
    int ziskatAbs(int cislo);
}

 

Další krok pak spočívá ve vytvoření instance tohoto rozhraní. Úlohu lze řešit, jak pomocí vícero instancí daného rozhraní, tak za pomoci jedné instance, jejíž třída bude implementována pomocí blokového lambda výrazu. V tomto případě není podmínka nijak složitá, proto byl pro řešení zvolen jeden blokový lambda výraz.

Lambda výraz musí odpovídat abstraktní metodě ve funkčním rozhraní, tudíž má jeden parametr, se kterým je nutné zacházet v těle lambda výrazu jako s hodnotou typu int. Pro lepší orientaci je zde vytvořena pomocná proměnná vysledek, do které je poté na základě splnění/nesplnění podmínky, tzn. zda je zadané číslo kladné či nikoli, přiřazena absolutní hodnota zadaného čísla.


        Funkce absHodnota = (cislo) -> {
            int vysledek;
            if(cislo < 0){
                vysledek= -cislo;
            }else{
                vysledek= cislo;
            }
            return vysledek;
        };

        System.out.println(absHodnota.ziskatAbs(zadaneCislo));

 

Výsledek se pak získá tak, že se na instanci funkčního rozhraní absHodnota zavolá metoda ziskatAbs(), které se jako parametr dosadí číslo zadané uživatelem. Po spuštění aplikace stačí zadat číslo například „-10“ a zkontrolovat, zda se po stisknutí Enter zobrazí hodnota „10“ (podobně otestovat i pro kladné hodnoty).

Celkové řešení je v projektu Absolutní hodnota - řešení.