Ep. 18 – OOP Part 2 (Trieda, Object, Inštancia)

1+

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ť.

Stiahnuť

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

OBJEKT

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.

  • Každý objekt má nejaké vlastnosti a chovania

TRIEDA

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.

  • Trieda je návrh/predloha, podľa ktorého sú jednotlivé objekty vytvárané
  • Triede môžeme dať nejaké vlastnosti/properties a metódy, ktoré reprezentujú chovania
  • Pomocou tried vytvárame objekty
  • Trieda je koncept a nedá sa „chytiť“

INŠTANCIA

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.

  • Inštancia je vytvorený objekt, ktorý žije v pamäti softvéru

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.

Príklad – LAMPA

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.

Záver

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.

Užitočné odkazy

Jakubova hra, ktorá učí základné koncepty OOP
Stará dobrá Wiki
OOP pre 6 ročných


Pridaj komentár

Vaša e-mailová adresa nebude zverejnená.