Předmět je zaměřen na představení objektově orientovaného paradigmatu a na zvládnutí základních konstrukcí jazyka C++ nezbytných pro realizaci návrhu a implementace jednoduchého objektově orientového programu.

Objektově orientované programování - prezenční studium

doc. Mgr. Miloš Kudělka, Ph.D.

Přehled témat a úkolů

PDF

Základní informace o obsahu přednášek, probíraných tématech a požadavcích na klasifikovaný zápočet.

Ukázka jednoduché třídy jako základní stavební jednotky objektového programu.

Modularita

PDF

Přehled a vývoj programovacích paradigmat se zaměřením na aspekty kvality a rozsah software. Modularita jako vnitřní faktor kvality.

Jednoduchá třída s kompozicí a ukázkou použití zaměřenou na vznik a zánik objektů.

Třídy a objekty

PDF

Obecné charakteristiky objektově-orientovaného paradigmatu zaměřené na objektový jazyk, podporu implementace a využívání knihoven.

Třída obsahující dynamické pole objektů jiné třídy, konstruktor a destruktor této třídy.

Návrh programu I

PDF

Návrh objektového programu se třemi třídami a jednoduchými kompozicemi. Rozbor úlohy a promítnutí návrhu do deklarace tříd.

Deklarace a implementace tříd, implementace programu využívajícho třídy.

Objektová dekompozice
Třída jako objekt

PDF

Vztah mezi funkční a objektovou dekompozicí programu, výhody použití objektové dekompozice. Třída jako objekt a příklady jejího použití.

Implementace jednoduchých příkladů, ve kterých se třída chová jako objekt.

Úvod do dědičnosti

PDF

Důvody pro použití dědičnosti, rozšíření chování, zastupitelnost jako základní princip. Jednoduchá úloha s rozdělením třídy na rodiče a potomka.

Reimplementace programu s využitím jednoduchého rozšíření v dědičnosti.

Dědičnost – změna chování

PDF

Změna chování třídy, rozdíl mezi přetížením a překrytím. Překrytí a substituční princip. Využití "protected" při rozšíření implementace.

Reimplementace programu s využitím překrytí v dědičnosti.

Dědičnost - polymorfismus

PDF

Rozšíření třídy s využitím polymorfismu. Rozdíl mezi obyčejným překrytím a virtuální metodou. Virtualita a substituční princip, nahrazení implementace.

Reimplementace programu s využitím polymorfismu.

Abstraktní třída
Vícenásobná dědičnost

PDF

Abstrakce jako základní nástroj pro dědičnost. Čistě virtuální metoda, abstraktní a čistě abstraktní třída. Vícenásobná dědičnost.

Reimplementace programu s využitím abstraktní a čistě abstraktní třídy.

Návrh programu II

PDF

Návrh objektového programu s využitím technik spojených s dědičností. Rozhodnutí kdy je a kdy není vhodné využít dědičnost.

Rozbor úlohy a promítnutí do kompozic a dědičných hierarchití tříd.

Generičnost

PDF

Generičnost jako nástroj využívající třídu (typ) jako parametr. Generický parametr, generická třída, konkrétní třída dosazená za generický parametr.

Implementace jednoduchého programu s generičností.

Zadání projektu

PDF

Implementace jednoduchého programu.

Předpokládá se vlastní objektový návrh.