Přeskočit na hlavní obsah
Přeskočit hlavičku

Objektově orientované programování

Typ studia bakalářské
Jazyk výuky angličtina
Kód 460-2055/02
Zkratka OOP
Název předmětu česky Objektově orientované programování
Název předmětu anglicky Object Oriented Programming
Kreditů 4
Garantující katedra Katedra informatiky
Garant předmětu doc. Mgr. Miloš Kudělka, Ph.D.

Subject syllabus

Přednášky
1. Vývoj programovacích paradigmat a jazyků, příčiny a důsledky.
2. Aspekty kvality software, znovupoužití. Nevýhody použití klasických přístupů.
3. Třída x objekt. Objekt jako počítačová reprezentace entity reálného světa. Data a funkce objektu, stav objektu.
4. Přehled principů OOP. Zapouzdření, skládání, zasílání zpráv, delegování, dědičnost, polymorfismus.
5. Vznik a zánik objektu I. Konstruktory, destruktory, jak fungují a proč.
6. Veřejná a soukromá část objektu, skrývání implementace.
7. Návrh objektově orientovaného programu I.
8. Jednoduchá dědičnost a důvody pro její použití. Polymorfismus.
9. Virtuální metody. Abstraktní třídy. Typy skrývání implementace. Vícenásobná x jednoduchá dědičnost, problémy a důsledky.
10. Vznik a zánik objektů II. Speciální typy konstruktorů, kopírovací konstruktor.
11. Návrh objektově orientovaného programu II.
12. Šablony (template) a důvody pro jejich použití.
13. Standardní objektové knihovny jazyka C++.
14. Defenzivní přístup k tvorbě objektového programu.

Počítačová cvičení:
Porovnání zdrojových kódu úloh s obdobným zaměřením a rozsahem, ale s použitím různého přístupu (procedurální x objektově orientovaný). Hodnocení z pohledu struktury, čitelnosti, spravovatelnosti.
Ukázka implementace jednoduchých spolupracujících tříd, analýza chování objektů.Návrh třídy s ohledem na skrývání detailů implementace.
Implementace jednoduchého objektově orientovaného programu I.
Ukázka implementace jednoduché objektové hierarchie (dědičnost), analýza chování objektů.
Implementace jednoduchého objektově orientovaného programu II.
Ukázka implementace objektového programu s využitím šablon a vybraných tříd standardních objektových knihoven jazyka C++.
Ukázka a defenzivní implementace jednoduchého orientovaného programu.

Literature

Meyer, B.: Object-Oriented Software Construction, Prentice Hall, 1997, ISBN: 978-0136291558 .
Eckel B.: Myslíme v jazyku C++, GradaPublishing, 2000, ISBN 80-247-9009-2.

Advised literature

Stroustrup, B.: The C++ Programming Language. Addison-Wesley Professional, 1997, ISBN 0201889544 .