2. Co dnes probereme
Vyhodnocení domácího úkolu
Zopakování minulé lekce + datové typy přehled
Další příklady algoritmů
Základy OOP
Zadání domácího úkolu
3. Datové typy přehled
Hodnotové typy
bool
byte
char
decimal
float
double
Int
long
Referenční typy
string - text
pole - array
seznam - list
objekt
Speciální datový typ
void = žádná návratová hodnota
4. OOP – Třída a objekt
Proč OOP
Blízké reálnému světu
Znovupoužitelnost
Co je třída
Uživatelsky definovaná datová struktura
Reprezentuje data se stejnými vlastnostmi a funkcemi
Vychází z reality
Příklady
Co je objekt
Konkrétní reprezentant dané třídy – instance třídy
Příklady
5. OOP – Třída
Součásti třídy
Popis
Atributy / proměnné
Chování
Metody
Komunikace s okolím
Zasílání zpráv / volání metod
7. OOP – zapouzdření
Co poskytuje objekt navenek a co dovnitř
Přístupová práva
Public
Private
Protected
Jak zapisujeme v UML
+ Public
- Private
#Protected
8. OOP – životní cyklus třídy
Konstruktor
Metoda, která se volá, když objekt vzniká
Konstruktor musí být public
Jmenuje se stejně jako třída
Může jich být víc
Nemá žádnou návratovou hodnotu ani void
Může být přetížen
Destruktor
Metoda, která se volá, když objekt zaniká
Garbage collector v .NET
9. OOP – vztahy mezi třídami
Asociace
Obecný vztah, jeden objekt používá druhý objekt
Agregace
Jeden celek, ale prvky mohou existovat samostatně
Může být sama se sebou
Kompozice
Kompozice celku a součásti, součástka nemůže existovat samostatně
Násobnost vazeb
1
0..1
0..*
1..*
10. OOP – dědičnost a rozhraní
Dědičnost
Sdílení funkcionality a vlastností
Předek , potom
Specifikace
Třída může mít jenom jednoho předka
Plná čára v UML
Rozhraní – interface
Povinnost implementovat funkcionalitu
Generalizace
Třída může implementovat více rozhraní
Čárkovaná čára v UML
11. OOP - polymorfismus
Schopnost potomka uplně překrýt metodu předka
Virtuální metoda - klíčové slovo virtual