Obsah
¨
OOP (Objektově orientované programování)
OOP je způsob myšlení a návrhu softwaru, který se snaží modelovat reálný svět pomocí digitálních objektů. Tento přístup výrazně usnadňuje správu rozsáhlých programů, umožňuje znovupoužitelnost kódu a zvyšuje jeho přehlednost.
Mezi nejznámější jazyky využívající OOP patří Java, C++, Python, C#, Ruby nebo Swift.
Základní stavební kameny
OOP stojí na dvou klíčových entitách:
1. **[[class|Třída (Class)]]:** Abstraktní vzor nebo šablona (např. výkres automobilu). Definuje, jaká data bude objekt mít a co bude umět. 2. **Objekt (Instance):** Konkrétní věc vytvořená podle třídy (např. konkrétní červené auto s SPZ 1A2 3456 stojící před domem).
Čtyři pilíře OOP
Aby byl systém považován za skutečně objektový, musí implementovat tyto čtyři principy:
1. Zapouzdření (Encapsulation)
Data (atributy) a operace nad nimi (metody) jsou uzavřeny v jednom celku – objektu. Vnitřní stav objektu je skrytý; vnější svět s ním komunikuje pouze skrze definované rozhraní. * Výhoda: Změna vnitřního fungování jedné třídy neovlivní zbytek programu.
2. Abstrakce (Abstraction)
Skrývání složitých detailů implementace a nabízení jednoduchého ovládání. Uživatel „auta“ ví, jak použít pedál (rozhraní), ale nemusí rozumět procesu vstřikování paliva v motoru. * Výhoda: Snižuje kognitivní zátěž programátora.
3. Dědičnost (Inheritance)
Umožňuje vytvářet nové třídy na základě již existujících. Nová třída (potomek) přebírá všechny vlastnosti a metody rodiče a může je rozšiřovat nebo upravovat. * Výhoda: Drasticky omezuje opakování stejného kódu (princip DRY – Don't Repeat Yourself).
4. Polymorfismus (Mnohotvárnost)
Schopnost různých objektů reagovat na stejný příkaz různým způsobem. Například třídy Čtverec a Kruh mohou mít obě metodu vykresli(), ale každá ji provede jinak.
* Výhoda: Programátor může pracovat s obecnými typy, aniž by se staral o to, jaký konkrétní podtyp v danou chvíli používá.
Procedurální vs. Objektový přístup
| Parametr | Procedurální (např. C) | Objektový (např. Java) |
|---|---|---|
| Hlavní jednotka | Funkce a postupy. | Objekty a data. |
| Přístup | Shora dolů (Top-down). | Zdola nahoru (Bottom-up). |
| Bezpečnost dat | Data jsou často volně přístupná. | Data jsou skrytá (zapouzdřená). |
| Údržba | U velkých projektů velmi obtížná. | Snadnější díky modularitě. |
Kdy OOP použít?
OOP je ideální pro:
- Složité systémy: Simulace, GUI (grafická rozhraní), hry, webové aplikace.
- Týmovou práci: Různí programátoři mohou pracovat na různých třídách nezávisle na sobě.
- Dlouhodobé projekty: Kód se snáze rozšiřuje a opravuje.
Naopak pro velmi jednoduché skripty nebo výpočetně kritické nízkoúrovňové operace může být OOP zbytečně „těžkopádné“ kvůli režii spojené se správou objektů.
Související pojmy: Class, Instance, Atribut, Metoda, Konstruktor, Dědičnost, Polymorfismus, SOLID principy.
