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
Doubler, ktorá reprezentuje funkciu f(x) = 2 * xSquarer, ktorá reprezentuje funkciu f(x) = x * xV 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.