Objektově orientované programování

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Co je to OOP?: Vizuální úprava)
m (Rysy OOP: Drobné úpravy)
Řádka 43: Řádka 43:
 
**objekt můžeme používat aniž bychom znali detaily jeho fungování
 
**objekt můžeme používat aniž bychom znali detaily jeho fungování
 
**implementaci objektu lze změnit, pokud nezměníme rozhraní, zbytek kódu nemusíme měnit
 
**implementaci objektu lze změnit, pokud nezměníme rozhraní, zbytek kódu nemusíme měnit
; Zapouzdření (encapsulation)
+
; Zapouzdření (''encapsulation'')
 
*objekt může přistupovat k vlastnostem jiných objektů pouze pomocí zasílání zpráv!
 
*objekt může přistupovat k vlastnostem jiných objektů pouze pomocí zasílání zpráv!
 
*„data a funkce dohromady“
 
*„data a funkce dohromady“
; Polymorfismus (polymorphism)
+
; Polymorfismus (''polymorphism'')
 
*různé objekty mohou reagovat na stejnou zprávu různě
 
*různé objekty mohou reagovat na stejnou zprávu různě
 
*„když dva dělají totéž, není to totéž“
 
*„když dva dělají totéž, není to totéž“
; Skládání (agregation)
+
; Skládání (''agregation'')
 
*objekt může jako své součásti obsahovat jiné objekty
 
*objekt může jako své součásti obsahovat jiné objekty
; Delegování (delegation)
+
; Delegování (''delegation'')
 
*pro provedení operace objekt část akce řeší voláním dalších objektů
 
*pro provedení operace objekt část akce řeší voláním dalších objektů
; Dědičnost (inheritance)
+
; Dědičnost (''inheritance'')
 
*pokud objekt sdílí a rozšiřuje rozhraní jiného objektu, popisujeme to dědičností
 
*pokud objekt sdílí a rozšiřuje rozhraní jiného objektu, popisujeme to dědičností
*dědičnost používáme pouze tehdy, kdy objekt přebírá CELÉ rozhraní jiného objektu
+
* dědičnost používáme pouze tehdy, kdy objekt přebírá (a případně rozšiřuje o nové zprávy) CELÉ rozhraní jiného objektu
 
**jinak používáme skládání + delegování
 
**jinak používáme skládání + delegování
  

Verze z 13. 1. 2014, 06:30


Obsah

Co je to OOP?

Základní paradigma OOP

Cíle

Model systému pohledem OOP (konstrukty OOP)

Objekt
Zprávy, rozhraní
třída a 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