Objektově orientované programování
Jedná se v podstatě o modelování reálné skutečnosti, kdy objekty jsou obrazem objektů skutečného světa. Mají své vlastnosti a mohou vykonávat určité činnosti. Každý objekt je instancí určité třídy objektů. Ta definuje množinu vlastností, které objekt může mít, a sadu činností, které objekt může provádět. Vlastnosti objektů se nazývají atributy. Činnostem, které objekty mohou vykonávat, říkáme metody. Metody jsou společné pro všechny objekty dané třídy, jednotlivé objekty se liší pouze hodnotami atributů. Důležitou vlastností každého objektu je to, že přesně ví, ke které třídě náleží.Jednou z vlastností objektů je zapouzdření. Jedná se o logické svázání dat (vlastností) objektů s činnostmi, které objekty s daty provádějí. Navenek se objekt tváří jako celek a poskytuje rozhraní, pomocí kterého je možné s ním komunikovat. Jakákoliv komunikace s objektem se děje prostřednictvím vybraných metod, které jsou právě tímto rozhraním.
Další vlastností je dědičnost. Z tzv. rodičovské třídy (základní, supertřídy) přecházejí všechny vlastnosti na potomky (odvozené třídy, podtřídy). Tyto vlastnosti mohou v odvozených třídách zůstat stejné nebo se mohou změnit. Mohou přibýt i nové vlastnosti, které se v rodičovské třídě nevyskytují. Vlastnosti mohou být zděděny z jedné třídy, ale také z více tříd. Potom má potomek vlastnosti všech těchto tříd.
S dědičností bývá spojen pojem polymorfismus. Jedná se o vlastnost, kdy konkrétní objekty různých tříd poskytující stejné rozhraní reagují na jednu a tutéž vzniklou událost různě. Díky tomu, že je rozhraní objektů stejné, není se třeba o konkrétní typ objektu starat. Událostí bývá většinou volání metody určitého jména. Zavoláme-li metodu, která zajistí nastartování automobilu, dostaneme určitý výsledek, ať se jedná o osobní automobil, nákladní automobil nebo formuli. Nemusíme tedy volat různé metody podle toho, s jakým objektem právě pracujeme a máme zajištěnu určitou očekávanou odezvu. Podmínkou je schopnost objektů na takovou událost reagovat, tzn. mít příslušnou vlastnost (metodu). Velmi častým způsobem nabytí takové vlastnosti (alespoň její implicitní podoby) je právě dědičnost.
Rozlišujeme mezi dvěma typy metod.
1. Metody objektů - metody vztahující se vždy k jednomu konkrétnímu objektu.
2. Metody tříd - metody, které nepatří žádnému objektu, ale jsou společné pro všechny objekty dané třídy.
A to by bylo pro dnešek všechno. V dalším díle se podíváme na implementaci objektů v Perlu. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.
Autor: Robert Habrman