Objektovo orientované programovanie

3. zadanie

V balíku oop.zadanie3 je rozhranie Function, ktoré reprezentuje funkciu jednej premennej (s jedným vstupom a jedným výstupom). Rozhranie obsahuje metódy

V tom istom balíku vytvorte

V triedach implementujte len potrebný kód. Vstup funkcie môže byť nastavený cez konštruktor. Triedy musia obsahovať aj konštruktor bez parametrov, ktorý vstup nastaví na nulu.

Príklad použitia:

Doubler d1 = new Doubler();
Function d2 = new Doubler(2);
d1.getOutput();        // vrati 0
d1.isOutputPositive(); // vrati false
d2.getOutput();        // vrati 4
d2.isOutputPositive(); // vrati true
d1.setInput(3);
d2.setInput(-4);
d1.getOutput();        // vrati  6
d1.isOutputPositive(); // vrati true
d2.getOutput();        // vrati -8
d2.isOutputPositive(); // vrati false

Squarer s1 = new Squarer(4);
Function s2 = new Squarer();
s1.getOutput();        // vrati 16
s1.isOutputPositive(); // vrati true
s2.getOutput();        // vrati 0
s2.isOutputPositive(); // vrati false
s1.setInput(-5);
s2.setInput(6);
s1.getOutput();        // vrati 25
s1.isOutputPositive(); // vrati true
s2.getOutput();        // vrati 36
s2.isOutputPositive(); // vrati true

V riešení bude hodnotené len vypracovanie zadaných tried. Riešenie ale môže obsahovať aj main, s testovacím kódom.

Pri implementácii dbajte na návrh a dobrú štruktúru programu. Vhodne použite princípy objektovo orientovaného programovania.

Použite Javu verzie 25.

Odovzdajte komprimovaný projekt vo formáte .zip! Zdrojové súbory projektu musia byť v adresári src alebo src/main/java, podľa toho, aký "buildovací" nástroj používate.

Za riešenie môžete získať 1 bod.