2.1. Objektově orientované programování (OOP)

Časová náročnost
Časová náročnost: 5 minut

upozornění Objektově orientované programování je výkonný způsob, jak přistupovat k úloze programování. Již od svých ranných začátků bylo programování spojováno s rozličnými metodologiemi. První programy byly realizovány pouhým nastavením přepínačů na čelním panelu počítače. Tento postup však byl vhodný pouze pro velice malé programy.

Později vytvořený jazyk symbolických instrukcí již umožňoval psaní delších programů. K dalšímu vývoji došlo v roce 1955, kdy byl vytvořen programovací jazyk vysoké úrovně - FORTRAN. S využitím programovacích jazyků vysoké úrovně byl programátor schopen psát dlouhé a složité programy. Další rozvoj přinesl vývoj strukturovaných programovacích jazyků - ALGOL a PASCAL. Strukturované programování se opírá o dobře definované řídící struktury, bloky kódu, vyloučení příkazu GOTO (nebo jeho minimalizace), funkce, rekurzi a lokální proměnné. Podstatou strukturovaného programování je začlenění programu do jeho základních vymezovacích prvků. S využitím strukturovaného programování může průměrný programátor vytvořit a udržovat programy až o délce několika tisíc řádků.

Když však program přesáhl určitou velikost, zklamalo i strukturované programování. Bylo potřeba vytvořit nový přístup k programování, který by dovolil psát složitější programy. K tomuto účelu bylo vytvořeno objektově orientované programování. OOP vzalo nejlepší myšlenky včleněné do strukturovaného programování a zkombinovalo je s výkonnými novými koncepty, které umožňovaly organizovat programy mnohem efektivněji. Objektově orientované programování podněcuje k rozkladu problému na elementární prvky. Každá komponenta se stává samostatným a nezávislým objektem, který obsahuje své vlastní instrukce a data, vztahující se k tomuto objektu.

Všechny objektově orientované jazyky sdílejí následující tři vlastnosti:

upozornění
  1. Zapouzdření (encapsulation)
  2. Polymorfismus - schopnost výskytu v mnoha formách (polymorphism)
  3. Dědičnost (inheritance)