třída, objekt, skládání, dědění, zapouzdření, delegování a polymorfizmus
Objektové orientované programovaní
- V rámci úlohy se identifikují objekty
- Každý objekt má svoje vlastnosti a metody
- Zdrojový kód se vytváří formou procedur, které jsou připojeny k událostem určitého typu – je řízen tokem událostí
3 základní vlastnosti
Obalení (Zapouzdření)
- Vyjadřuje schopnost objektu spojit v jeden celek data a metody
- Ukrytí vnitřní struktury objektu
- Nemůžeme manipulovat přímo s atributy objektu, ale pouze pomocí operací z veřejného rozhraní objektu
- Zamezuje nechtěným změnám či chybám stavu objektu
- Modularita – každý objekt lze udržovat a spravovat nezávisle na jiném objektu, aniž by to nějak ovlivnilo celkovou funkčnost programu
Modifikátory přístupu
Přístup k proměnným a metodám může být řízen uvedením modifikátoru před deklaraci prvku
- Public – veřejné, viditelné i mimo třídu
- Private – privátní, viditelné pouze uvnitř třídy
- Protected – nepřípustné vzdáleným přístupem, ale pocházející s děděním odvozených tří
Dědičnost
- Umožňuje vytvářet nové objekty jako potomky již existujících objektů – předků, přebírat od nich datové položky a metody a modifikovat je či upřesňovat.
Polymorfismus (mnohotvárnost)
- Polymorfismus je vlastnost objektového programování, která umožňuje pojmenovat metodu jedním jménem a tato metoda může být společná pro různé objekty ve stromové hierarchii, i když pro každý objekt v této hierarchii se bude chovat různě.
Objekt a jeho vlastnosti
- Soběstačná entita (ucelená jednotka), která obsahuje data a funkčnost
- Je instancí určité třídy
- má konkrétní místo v paměti
Vlastnosti Objektu
- Proměnné – atributy (vlastnosti)
- Metody
- Podprogram, který primárně pracuje s proměnnými
- Může mít další parametry
- Dva typy
- Funkce – vrací hodnotu, používá se příkaz return
- Procedury – nevrací hodnotu
- U procedur se používá návratový typ void
- Mají určitý modifikátor přístupu
- Přístup k proměnným a metodám může být řízen uvedením modifikátoru před deklaraci prvku
public– veřejné, viditelné i mimo tříduprivate– privátní, viditelné pouze uvnitř třídyprotected– nepřípustné vzdáleným přístupem, ale pocházející s děděním odvozených tříd
- Přístup k proměnným a metodám může být řízen uvedením modifikátoru před deklaraci prvku
Konstruktor
- Speciální metoda volaná při vytváření nových instancí dané třídy
- Inicializuje proměnné objektu
- Nemají návratový datový typ (ani void), pouze modifikátor přístupu
- Mohou mít parametry, ale nemusí
- Parametrické (mají jeden a více parametrů)
- Bezparametrické (nemají žádný parametr)
- Objekt se vytvoří pomocí operátoru
newa konstruktoru (Auto auto1 = new Auto())
Třída
- Skupina objektů, která nese stejné vlastnosti
- Popisuje vnitřní strukturu objektu a jeho vnější rozhraní
- Podobná datovému typu
Delegování
- Objekt může využívat služeb jiných objektů tak, že je požádá o provedení operace, ty tedy pro okolí vystavují své služby.
P.S. Kdo furt nechápe OOP tak ať si vzpomene na Šmídův příklad – Auto a jeho vlastnosti – barva, značka,… getBarva(), getZnačka,…