Pokračujeme druhou častou v sérií OOP. V tejto epizóde si najprv zopakujeme, čo je to objekt. Potom prejdeme na to, čo je to trieda a inštancia. Neskôr budeme rozoberať rozdiely medzi triedou, objektom a inštanciou. Nevyhneme sa ani príkladom z reálneho života, aby sme si to vedeli lepšie predstaviť.
00:00 – 00:35 Úvod
00:36 – 02:22 Čo je to objekt (zopakovanie)
02:23 – 06:20 Čo je trieda?
06:21 – 09:05 Čo je inštancia?
11:06 – 11:07 Aký je rozdiel medzi objektom, triedou a inštanciou?
10:48 – 13:53 Príklad vytvorenia triedy Lampa
13:54 – 15:07 Záver
Objekty sú všade okolo nás. Keď sa teraz obzriem okolo seba vidím klávesnicu, monitor, myš, mobil, sluchadlá a všetko možné. Toto všetko sú reálne objekty, ktoré vieme reprezentovať aj v softvérovom svete.
Keď vidíme na ceste 2 škodovky, tak vidíme vlastne 2 objekty. Tieto objekty sú dosť podobné, ale je nám jasné, že nie sú to tie isté objekty. Oba objekty sú škodovky a majú spoločné charakteristiky. V softvérovom svete by sme vedeli povedať, že oba objekty sú vytvorené z triedy Škodovka.
V OOP terminológií môžeme povedať, že inštancia je objekt vytvorený z nejakej trieday. Je to už teda konkretny vytvorený objekt, ktorý je v pamäti programu.
Termíny objekt a inštancia sú často zameniteľné a veľa ľudí vám povie, že medzi nimi nie je žiaden rozdiel. Vypočujte si v podcaste, ako sa vám napriek tomu posnažíme vysvetliť rozdiely.
Lampa v reálnom svete má jednu vlastnosť (zjednodušene). Môže byť buď zapnutá alebo vypnutá.
Taktiež ma jedno chovanie, ktoré mení jej stav (pomocou vypínača/zapínača)
V softvérovom svete by sme si vytvorili triedu Lamp a dali by sme jej property boolean switched.
Následne 2 metódy, ktorými môžeme switched nastaviť na true alebo false.
class Lamp {
boolean switched;
public Lamp(boolean switched) {
this.switched = switched;
}
public void switchOn() {
this.switched = true;
}
public void switchOff() {
this.switched = false;
}
}
Je to jednoduchá trieda, ktorá poskytuje návrh, ktorým môžeme vytvoriť hocikoľko lámp. A aj keby sme vytvorili 2 lampy a obe by mali switched nastavené na true, tak stále by to boli 2 rôzne objekty/inštancie, pretože by odkazovali na iné miesto v pamäti.
V ďalších epizodách si prejdeme základné pojmy z OOP – dedenie, abstraktná trieda, rozhranie a polymorfizmus. Sústredíme sa na to, prečo to prináša také výhody, že je to najviac rozšírená paradigma.
Jakubova hra, ktorá učí základné koncepty OOP
Stará dobrá Wiki
OOP pre 6 ročných