Nyní se pustíme do něčeho, co se do doby asi před pěti lety považovalo za náročné téma. V současnosti se již objektově orientované programování stalo normou. Jazyky, jako jsou Java a Python disponují možností programovat objektově, což využíváme při programování i jednoduchých aplikací. Takže o čem vlastně objektové programování je?
Nyní si popíšeme na čem je založená metodika OOP vývoje programu:
Objekty – jednotlivé prvky se kterými pracujeme (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í).
Zapouzdření – zaručuje, že objekt nemůže přímo přistupovat k obsahu jiných objektů, což by mohlo vést k "nekonzistenci". Každý objekt navenek zpřístupňuje rozhraní, pomocí kterého (a nijak jinak) se s objektem pracuje.
Skládání – Objekt může obsahovat jiné objekty.
Dědičnost – objekty jsou organizovány stromovým způsobem, kdy objekty nějakého druhu mohou dědit z jiného druhu objektů, čímž přebírají jejich schopnosti, ke kterým pouze přidávají svoje vlastní rozšíření. Tato myšlenka se obvykle implementuje pomocí rozdělení objektů do tříd, přičemž každý objekt je instancí nějaké třídy. Každá třída pak může dědit od jiné třídy (v některých programovacích jazycích i z několika jiných tříd).
Polymorfismus – odkazovaný objekt se chová podle toho, jaké třídy je instancí. Pokud několik objektů poskytuje stejné rozhraní, pracuje se s nimi stejným způsobem, ale jejich konkrétní chování se liší podle implementace. U polymorfismu podmíněného dědičností to znamená, že na místo, kde je očekávána instance nějaké třídy, můžeme dosadit i instanci libovolné její podtřídy, neboť rozhraní třídy je podmnožinou rozhraní podtřídy.
V příštím díle si ukážeme deklarace třídy, a tudíž i realizaci OOP.