Download - Model tříd
![Page 1: Model tříd](https://reader036.vdocuments.pub/reader036/viewer/2022072016/56813303550346895d99bf92/html5/thumbnails/1.jpg)
PVY – 2 . POLOLETÍ2 . CVIČENÍ
Model tříd
Bc. Jiří Šilhán
![Page 2: Model tříd](https://reader036.vdocuments.pub/reader036/viewer/2022072016/56813303550346895d99bf92/html5/thumbnails/2.jpg)
Model tříd
Model tříd zachycuje statickou strukturu systému tím, že ukazuje: Objekty v systému Vztahy mezi objekty Atributy a operace, charakterizující každou třídu
objekt
Model tříd je nejdůležitější ze 3 modelů a poskytuje intuitivní grafickou reprezentaci systému
![Page 3: Model tříd](https://reader036.vdocuments.pub/reader036/viewer/2022072016/56813303550346895d99bf92/html5/thumbnails/3.jpg)
Objekty a třídy
Objekt – je předmět našeho zájmu v systému Všechny objekty mají identitu a jsou rozlišitelné Jeden objekt = výskyt (instance třídy)
Třída – objektů popisuje skupinu objektů s podobnými vlastnostmi (atributy), společným chováním (operace), stejnými vztahy k jiným objektům Např: osoba, továrna, zvíře, pes…
Objekty a třídy se vyskytují jako podstatná jména
![Page 4: Model tříd](https://reader036.vdocuments.pub/reader036/viewer/2022072016/56813303550346895d99bf92/html5/thumbnails/4.jpg)
Objekty a třídy
Objekty v třídě sdílejí stejný významový cíl (nadřazeno požadavku stejných atributů a chování) Např. stodola a kůň mají stejné atributy věk a cena –
přesto mohou patřit do různých třídSeskupením objektů do tříd získáváme řadu
předností Např společné definice se ukládají pouze jednou za
třídu namísto za každou instanci
![Page 5: Model tříd](https://reader036.vdocuments.pub/reader036/viewer/2022072016/56813303550346895d99bf92/html5/thumbnails/5.jpg)
Objektové diagramy
Nástroj pro přesné a snadné vyjádření objektového modelu
Diagram třídy: (obecné)
Diagramy instance: (příklady pro objasnění)
Osoba
JanNovák: Osoba
EvaMalá: Osoba
![Page 6: Model tříd](https://reader036.vdocuments.pub/reader036/viewer/2022072016/56813303550346895d99bf92/html5/thumbnails/6.jpg)
Atributy
Atributy popisují datové vlastnosti objektůAtributy jsou popsány v druhé části symbolu
třídy; od názvu třídy oddělené vodorovnou čarou
Osoba
jméno: řetězecvěk: celé číslo
EvaMalá:Osoba
jméno=„Eva Malá“
věk= 43
Třída s atributy
Objekt s hodnotami
![Page 7: Model tříd](https://reader036.vdocuments.pub/reader036/viewer/2022072016/56813303550346895d99bf92/html5/thumbnails/7.jpg)
Atributy
Každý název atributu může být následován volitelnými detaily jako typ a počáteční hodnota
Typ je oddělen dvojtečkou, nastavená hodnota je oddělena rovnítkem
V objektovém modelu nejsou požadovány explicitní identifikátory objektu (každý objekt je identifikován svou vlastní identitou)
![Page 8: Model tříd](https://reader036.vdocuments.pub/reader036/viewer/2022072016/56813303550346895d99bf92/html5/thumbnails/8.jpg)
Operace a metody
Operace je funkce nebo transformace, která je prováděna objektem nebo na objektu ve třídě Např. pro třídu SOUBOR platí operace TISK
Všechny objekty ve třídě sdílejí stejné operace
Každá operace má cílový objekt jako implicitní argument
Operace může mít argumenty Metoda je implementace objektu na třídu
![Page 9: Model tříd](https://reader036.vdocuments.pub/reader036/viewer/2022072016/56813303550346895d99bf92/html5/thumbnails/9.jpg)
Operace a metody
Když operace má metody na několika třídách, potom všechny metody mají stejnou signaturu, tj. počet a typ argumentů a typ výsledku
Operace jsou uvedeny v dolní části symbolu pro třídu
Osoba
jméno
věk
změnaAdresy
Polygon
barva
poloha
otoč(úhel)
přesuň (delta: Vektor)vyber (p: Bod): Boolean
Každý název operace může být doplněn o seznam argumentů a typ výsledku
![Page 10: Model tříd](https://reader036.vdocuments.pub/reader036/viewer/2022072016/56813303550346895d99bf92/html5/thumbnails/10.jpg)
Celková notace třídy objektů
Název třídy
atr1: typ dat1= poč hodn.1
oper1 (sezn. Argumentů1): výsledek1
atr2: typ dat2= poč hodn.2
Každý název operace může být doplněn o seznam argumentů a typ výsledku
Seznam argumentů se uvádí v závorkách za názvem, argumenty jsou odděleny čárkamiPrázdný seznam argumentů mezi závorkami explicitně ukazuje, že operace nemá argumentyTyp výsledku předchází dvojtečka