Objektově orientované programování je programovací paradigma založené na konceptu „objektů“, které mohou obsahovat data (ve formě polí či atributů) a kód (ve formě procedur neboli metod). OOP pomáhá zpřehlednit vývoj velkých systémů, usnadňuje znovupoužitelnost kódu a jeho údržbu.
Pro pochopení OOP je zásadní rozdíl mezi těmito dvěma pojmy:
Aby byl jazyk považován za skutečně objektový, musí podporovat tyto čtyři principy:
Skrývání vnitřního stavu objektu před vnějším světem. Přístup k datům je umožněn pouze přes veřejné metody (gettery a settery).
Zjednodušení komplexní reality tím, že modelujeme pouze ty aspekty, které jsou pro náš program důležité.
Umožňuje vytvářet nové třídy na základě již existujících. Potomek přebírá (dědí) vlastnosti a metody rodiče a může přidávat vlastní.
Pes a Kočka dědí od třídy Savec.Schopnost různých objektů reagovat na stejné volání metody různým způsobem.
vydej_zvuk(). U objektu Pes zaštěká, u objektu Kočka zamňouká. Programátorovi stačí vědět, že volá metodu na „zvířeti“, a objekt se postará o zbytek.—
—
| Výhody | Nevýhody |
|---|---|
| Modularita: Snazší řešení chyb v izolovaných objektech. | Komplexita: Pro velmi malé programy může být OOP zbytečně složité. |
| Znovupoužitelnost: Jednou napsanou třídu lze použít v mnoha projektech. | Výkon: Režie spojená s objekty může mírně zpomalit běh (v porovnání s C). |
| Rozšiřitelnost: Snadné přidávání nových funkcí pomocí dědičnosti. | Paměťová náročnost: Objekty zabírají v paměti více místa než prostá data. |
—
Dnes téměř každý moderní jazyk podporuje OOP, i když v různé míře:
Související články:
Tagy: dev oop programming software_engineering inheritance polymorphism encapsulation