Objektově orientované programování

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Rysy OOP: Upraven formát)
(Cíle: Dodáno vysvětlení „vlastními slovy“)
Řádka 16: Řádka 16:
 
== Cíle ==
 
== Cíle ==
 
*Je vedeno snahou o znovupoužitelnost komponent.
 
*Je vedeno snahou o znovupoužitelnost komponent.
*Rozložení úlohy na dílčí součásti.
+
*Rozkládá složitou úlohu na dílčí součásti, které jdou pokud možno řešit nezávisle.
*Přiblížení struktury řešení reálnému světu.
+
*Přiblížení struktury řešení v počítači reálnému světu (komunikující objekty).
 +
*Skrytí detailů implementace řešení před uživatelem řešení.
 +
 
 +
<div class="Priklad">Představte si, že někdo vytvořil knihovnu, která řeší obecnou úlohu (třeba <tt>ArrayList</tt> v Javě, fungující jako úložiště objektů).
 +
 
 +
Když tuto knihovnu chcete použít, potřebujete vědět:
 +
* hodnotu kterých proměnných můžete měnit,
 +
* které metody/funkce/procedury smíte volat.
 +
 
 +
To samozřejmě lze napsat do dokumentace. OOP je však vedeno snahou, aby zodpovězení těchto otázek bylo přirozenou součástí kódu.
 +
</div>
  
 
== Model systému pohledem OOP (konstrukty OOP) ==
 
== Model systému pohledem OOP (konstrukty OOP) ==

Verze z 13. 1. 2014, 07:25


Obsah

Co je to OOP?

Základní paradigma OOP

Cíle

Představte si, že někdo vytvořil knihovnu, která řeší obecnou úlohu (třeba ArrayList v Javě, fungující jako úložiště objektů).

Když tuto knihovnu chcete použít, potřebujete vědět:

  • hodnotu kterých proměnných můžete měnit,
  • které metody/funkce/procedury smíte volat.

To samozřejmě lze napsat do dokumentace. OOP je však vedeno snahou, aby zodpovězení těchto otázek bylo přirozenou součástí kódu.

Model systému pohledem OOP (konstrukty OOP)

Objekt
Zpráva
Rozhraní objektu/třídy
Třída
Instance
Atributy
Stav objektu

Rysy OOP

Abstrakce (abstraction)
Zapouzdření (encapsulation)
Polymorfismus (polymorphism)
Skládání (agregation)
Delegování (delegation)
Dědičnost (inheritance)

Použití konstruktů OOP v programovacích jazycích

Syntaxe Javy viz Java: Zápis tříd.

Objekty, třídy

Vytváření objektů

Zprávy

Metoda má
Přetěžování metod (overloading)
Překrývání metod (overlaying)
Atomizace metod

Atributy

Instanční proměnné
Třídní proměnné
Přístupnost metod a atributů (určena modifikátory)

Syntaxe v Javě viz Java: Modifikátory přístupu.

Dědičnost

Abstraktní třída

Rozhraní (interface)

Nepleťte s pojmem „rozhraní třídy“ ve smyslu souhrnu všech metod!
Pokud implementujeme interface, pak „slibujeme“, že součástí rozhraní třídy jsou minimálně metody, zahrnuté v interface.

Operátory this a super

Příklady použití rysů OOP v knihovnách Javy

Polymorfismus
Skládání

Zdroje

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje