Objektově orientované programování
07.09.2011 09:57
Objektově orientované programování (OOP)
- metodika vývoje softwaru, založená na následujících myšlenkách
Koncepce
- Objekty
- Abstrakce
- Zapouzdření
- Skládání – Objekt může obsahovat jiné objekty
- Delegování – Objekt může využívat služeb jiných objektů, tak, že požádá o operaci
- Dědičnost
- Polymorfismus
Programovací jazyky
- Perl
- SmallTalk
- C++
- Java
- Object Pascal
- Python
- PHP
Zapouzdření
- Zapouzdření v objektech znamená, že k obsahu objektu se nedostane nikdo jiný, než sám vlastník.
- navenek se objekt projeví jen svým rozhraním (operacemi, metodami) a komunikačním protokolem.
- Skládání objektů je jednou z nejdůležitějších vlastností objektového datového modelu. Je o dost důležitější než dědičnost.
Dědičnost
- Při vytváření objektů pro chod programu, které budou odpovídat zmíněným dvěma reálným objektům, je třeba vytvořit dvě různé instance třídy Člověk, pro každý modelovaný reálný objekt jednu instanci (tedy jedna instance já a jedna sousedka). Hodnoty atributů jméno a příjmení se pochopitelně v našem případě budou lišit, nicméně obě instance jsou schopny chodit a mluvit díky tomu, že jsme tyto schopnosti obecně přiřadili třídě Člověk.
- Představme si dále, že můj soused je svářeč. Stejně jako moje sousedka má jméno, příjmení a umí chodit, mluvit, navíc ovšem umí svářet. Při modelování můžeme využít toho, že svářeč má všechny vlastnosti třídy Člověk a něco navíc. Vytvořme třídu Svářeč jako potomka třídy Člověk. Třída svářeč tímto dědí všechny atributy i metody třídy Člověk (nemusíme je v kódu znovu psát a budeme je upravovat na jediném místě), navíc bude mít metodu svařit.
- Metoda svařit může mít dva například parametry (argumenty), prvníKusKovu a druhýKusKovu, a návratovou hodnotu jedenKusKovu
Dědičnost
- Jednomu objektu volat jednu metodu s různými parametry (parametrický polymorfismus).
- Objektům odvozených z různých tříd volat tutéž metodu se stejným významem v kontextu jejich třídy, často pomocí rozhraní.
- Přetěžování operátorů znamená provedení operace v závislosti na typu operandů (operátorový polymorfismus)
Objekt
- Jednotlivé prvky modelované reality (jak data, tak související funkčnost) jsou v programu seskupeny do entit, nazývaných objekty. Objekty si pamatují svůj stav a navenek poskytují operace (přístupné jako metody pro volání).
Třída
- Třída je základním obecným pojmem klasifikace, jak při návrhu uspořádávát informace do smysluplné entity. Základním pojmem je objekt, instance třídy, jako konkrétní případ realizace předpisu.
