Objektově orientované programování

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Realizace konstruktů OOP v Javě: Kompletně přepsáno)
(Příklady použití rysů OOP v knihovnách Javy: Opraven vzhled i příklady.)
Řádka 132: Řádka 132:
 
== Příklady použití rysů OOP v knihovnách Javy ==
 
== Příklady použití rysů OOP v knihovnách Javy ==
 
;Polymorfismus
 
;Polymorfismus
*Component.paint()
+
* <code>Component.paint()</code>
**v C++ by musela být virtual
+
** každá komponenta reaguje jinak
 +
** některé komponenty delegují volání na další vnořené komponenty.
 
;Skládání
 
;Skládání
 
*Čítač příchodů
 
*Čítač příchodů
**Kalkulačka jako součást
+
** Představme si, že máme již vytvořenou třídu <code>Kalkulacka</code> s metodou <code>pricti(cislo)</code>
 +
** Můžeme využít instanci třídy <code>Kalkulacka</code> jako atribut.
 +
** Metoda <code>priselZakaznik()</code> bude delegovat volání na <code>kalkulacka.pricti(1)</code>.
 +
** Dědičnost by zde nebyla vhodná, ostatní metody třídy <code>Kalkulacka</code> '''nemají''' být součástí rozhraní třídy <code>CitacPrichodu</code>.
  
 
== Zdroje ==
 
== Zdroje ==
 
* [http://cs.wikipedia.org/wiki/Objektově_orientované_programování Wikipedia.org > Objektově orientované programování]
 
* [http://cs.wikipedia.org/wiki/Objektově_orientované_programování Wikipedia.org > Objektově orientované programování]
 
* [http://jaksenaucitprogramovat.py.cz/cztutclass.html JakseNaucitProgramovat.py.cz > Cztutclass]
 
* [http://jaksenaucitprogramovat.py.cz/cztutclass.html JakseNaucitProgramovat.py.cz > Cztutclass]

Verze z 23. 5. 2012, 23:43


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)

Zápis konstruktů OOP v Javě

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)

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