Ep. 17 – OOP Part 1 (Intro)
Touto epizódou sa začína séria o OOP – objektovo orientovanom programovaní. Táto epizóda je iba úvodnou k celej sérii a povieme ti, o čom celá séria bude a skúsime načrtnúť, čo to OOP je a na čo sa používa.
00:00 – 01:24 Úvod
01:25 – 02:33 Programovacie paradigmy
02:34 – 04:50 Čo je objekt?
04:51 – 07:58 Procedurálne vs. objektovo orientované
07:59 – 10:47 Piškvorky objektovo vs. procedurálne
10:48 – 11:53 Procedurálne vs. objektovo orientované po druhé
11:54 – 15:09 Výhody dedenia
15:10 – 16:05 Záver
DISCLAIMER: OOP je jeden z programovacích štýlov. Nie je to jediná voľba a nie vždy ani najlepšia voľba programovacieho štýlu. My obaja programujeme hlavne objektovo a je to asi najčastejšie používaný štýl v praxi.
Paradigmy
Dve rozdelenia:
- Imperatívne – povedz mi ako a čo mám urobiť a ja ti z toho dám výsledok
- Deklaratívne – povedz mi čo chceš a ja ti to už nejako dodám
- Procedurálne (imperatívne) – využíva procedúry (funkcie), ktoré majú nejaké parametre a dajú sa volať od hocikadiaľ
- Funkcionálne (deklaratívne) – tiež využíva funkcie. Tieto funkcie sú však bližšie tým matematickým. Funkcionálne programovanie sa snaží vyhýbať zmenám stavu a meniacim sa dátam
- Objektovo orientované (imperatívne) – využíva objekty, ktoré majú nejaké vlastnosti (premenné) a nejaké správanie (funkcie/metódy)
Procedurálne vs. Objektovo orientované
- V procedurálnom si spravým štruktúru a funkcie, ktoré majú túto štruktúru ako prvý parameter
- V objektovom si spravím classu a v nej mám k nej patriace funkcie
- Procedurálne nemá dedenie, polymorfizmus, interfaces (rozhrania), …
Piškvorky v OOP
- Reálny svet: Dvaja hráči, hracia plocha, ťahy, vyhodnocovacia logika (výhra/prehra)
- Objekty: Player1, Player2, Board, Moves, WinLogic, Game
Dedenie
- Dedenie je jednou z nemála výhod voči iným štýlom
- 4 classy: Vozidlo, Auto, Motorka, Autobus
- Každá ma v sebe metódu VypočítajSpotrebu
- Nezaujíma nás, s ktorým presne vozidlom pracujeme, dôležité je, že to určite má túto metódu
Záver
V ďalších epizodách sa pokúsime vysvetliť rozdiely medzi objektom, classou a inštanciou. Potom si prejdeme základné pojmy z OOP – dedenie, abstraktná trieda, rozhranie, enkapsulácia, atď. Neskôr prejdeme výhody a nevýhody OOP a ďalšie veci.
Užitočné odkazy
Jakubova hra, ktorá učí základné koncepty OOP
Stará dobrá Wiki
OOP pre 6 ročných