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ří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

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 new a 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,…