Programování v jazyce Java PB162 Cvičenie 3 Opakovanie - Objekt Opakovanie - Trieda Opakovanie – Zapúzdrenie Opakovanie – Úroveň abstrakcie Abstrakcia vymedzuje podstatné znaky objektu, ktoré jho odlišujú od ostatných druhov objektu, a tak poskytuje ostro definované konceptuálne hranice relatívne podľa perspektívy pozorovateľa. Opakovanie – Metóda vs. konštruktor Opakovanie – Metóda vs. konštruktor Rozdiel medzi metódou a konštruktorom je ten, že konštruktor je špeciálna metóda, ktorá nemá návratový typ a má rovnaké meno ako trieda. Ako môže vypadať návrh systému Preťažovanie • Preťažovanie metód • Preťažovanie konštruktorov Preťažovanie - príklady • napr. Sčítanie dvojice čísel, rozne kombinácie typov týchto čísel(int+int, int + long, …) • Vypísanie niecoho na obrazovku(reťazec, číslo, nejaký objekt, ...) • a veľa ďalších Pridanie preťažovania do rádia • Pridajte metódu na nastavovanie frekvencie pripočítaním, resp. Odpočítaním celého čísla • Pridajte metódu na nastavovanie frekvencie pripočítaním, resp. Odpočítaním reálneho čísla • Pridajte konštruktor, ktorý nastaví automaticky maximálnú hlasitosť reproduktoru na 30. • Vaše návrhy? Modifikátor static • Statické metódy • Statické atribúty • Konštanty Rozhranie Rozhranie • Umožňuje viacnásobnú dedičnosť • Trieda môže implementovať viac rozhraní • Rozhranie je vlastne popis (špecifikácia) množiny vlastností, bez toho, abz sa tieto vlastnosti ihneď implementovali. Vlastnosťami tu rozumieme predovšetkým metódy. • Hovoríme, že určitá trieda implementuje rozhranie, ak implementuje (teda má - priamo sama alebo podedí) všetky vlastnosti (tj. metódy), ktoré sú daným rozhraním predpísané. • Javové rozhranie je teda množina hlavičiek metód označená identifikátorom - názvom rozhrania. (a celých špecifikácií - tj. popisom, čo presne má metoda robiť - vstupy/výstupy metódy, jej vedľajšie efekty...) • Jednotlivé rozhrania môžu dediť iné rohrania Rozhranie-deklarácia public interface XYZ{ … } • Všetky metódy rozhrania musia byť public(v jave sa pri deklarácií metód rozhrania preto nemusí, ale môže modifikátor uvádzať) Rozhranie-úprava rádia • Vytvorte rozhranie device s metódami turnOn, turnOff a upravte rádio tak, aby implementovalo toto rozhranie • Vytvorte rozhranie Switchable a upravte vypínač tak, aby implementoval toto rozhranie • Vytvorte rozhranie SignalReceiver a upravte rádio tak, aby implementovalo toto rozhranie Rozhranie-úprava rádia • Vytvorte rozhranie GivingSound a upravte reproduktor tak, aby implementoval toto rozhranie • Zmeňte triedu Radio na RadioImpl, vytvorte rozhranie Radio, ktoré bude dedit rozhranie Device, SignalReceiver, a navyse bude vedet deklarovať metódy pre manipuláciu so zvukom, • Vytvorte diaľkové ovládanie na akékoľvek rádio Rozhranie-cvičenie na doma • Vytvorte rozhranie Displayable a zakomponujte jeho využitie do displayu a rádia • Vytvorte si univerzálne rádio, ktoré bude možné poskladať z rôznych súčiastok, ktoré budú implementovať požadované rozhrania