Princípy objektovo orientovaného programovania
Prvá prednáška
Stiahnuť PDF · 1,2 MBPreber si túto poznámku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto poznámky.
Náhľad poznámky
Princípy objektového
programovania
Informatika 1
Cieľ predmetu
• Úvod do programovania všeobecne
• Dôraz na objektový prístup
• Základné princípy tvorby algoritmov
• Programovací jazyk Java
Informatika 1
1
Veci okolo nás
Informatika 1
2
Informatika 1
Televízor – ako sa používa?
+ návod na použitie
3
Televízor – čo je vo vnútri?
• Z čoho sa skladá?
• Ako funguje?
• Musíme to vedieť, keď ho používame?
Informatika 1
4
Veci okolo nás
Informatika 1
5
Práčka – ako sa používa?
Informatika 1
6
Veci okolo nás
Informatika 1
7
Veci okolo nás
Informatika 1
8
Veci okolo nás
Informatika 1
9
Veci okolo nás
Informatika 1
10
Veci okolo nás
Informatika 1
11
Veci okolo nás
Informatika 1
12
Veci okolo nás
• Dajú sa nejako spoločne charakterizovať?
• Čo sa dá povedať, aby sme to mohli aplikovať na
každú vec?
Informatika 1
13
Veci okolo nás
• Pohľad vonkajší
• Na čo nám slúži?
• Ako sa používa?
• Pohľad vnútorný
• Z čoho sa skladá?
• Ako sa dá charakterizovať?
• Ako funguje?
Informatika 1
14
Veci okolo nás
Informatika 1
objekty
15
Objekt televízor
Informatika 1
16
Televízor má vlastnosti
• Vek
• Veľkosť uhlopriečky
• Farebný alebo čiernobiely
• Typ obrazovky:
– klasická (elektrónka),
– Tekuté kryštály (LCD),
– Plazma
• ...
Informatika 1
17
Televízor má funkcie
• Zobrazuje vysielanie TV stanice, alebo monoskop,
alebo „sneženie“
• Vypne sa alebo zapne sa na požiadanie
• Zmení TV stanicu na požiadanie
• Zmení hlasitosť na požiadanie
• ...
Informatika 1
18
Objekt práčka
Informatika 1
19
Práčka má vlastnosti
• Rozmery
• Hmotnosť dávky prádla
• Trieda úspornosti
• Značka
• plnenie zhora alebo zboku
• ...
Informatika 1
20
Práčka má funkcie
• Perie
• Zohrieva vodu
• Plácha
• Odstreďuje (žmýka)
• ...
Informatika 1
21
Človek ako objekt
• Komunikuje so svojim okolím?
• Má vlastnosti?
• Má svoje „časti“?
• Má „funkcie“?
• Môžeme ho chápať ako objekt.
• Podobne s trochou fantázie aj ostaná príroda.
• Všetko okolo nás sú objekty.
Informatika 1
22
Objekty spolupracujú
Informatika 1
23
Objekty spolupracujú
• Objekty spolupracujú tak, že si odovzdávajú
potrebné informácie
– Človek stlačí tlačidlo na diaľkovom ovládači – číslo
kanálu zvoleného TV programu
– Ovládač odošle informáciu do TV prijímača
– TV prijímač naladí požadovaný TV program a
zobrazuje ho človekovi
Informatika 1
24
Objekty spolupracujú
Informatika 1
Všeobecne budeme hovoriť, že
objekty si posielajú správy
25
Základné pojmy OP
• Objekt
• Správa
Informatika 1
26
Modelovanie objektov
Objekt reálneho sveta vs. objekt v OOP
• Model je zjednodušením reality – uvažuje iba
stránky podstatné pre riešený problém
• Model – fyzikálny, matematický, programový, ...
• Programový objekt modeluje objekty reálneho
sveta
• Program je množina objektov, ktoré spolu
komunikujú pomocou správ
• Programy sa píšu v programovacích jazykoch
• My budeme používať jazyk Java [džava]
Informatika 1
28
Postup pri tvorbe programu
• Objekt reálneho sveta
• Logický model – UML
• Softvérový model – program v Jave
Informatika 1
29
Reálny objekt
Informatika 1
30
UML model
Informatika 1
31
Softvérový model
Informatika 1
32
Používanie programu
• Program v dvoch tvaroch
– Zdrojový kód (zdrojový text) – zapisuje aj číta človek –
počítač mu nerozumie
– Strojový kód – podľa neho pracuje počítač – človek
nie je schopný jednoducho prečítať, alebo zmeniť
• Prevod zo zdrojového do strojového kódu
zabezpečuje špeciálny program – prekladač
(kompilátor)
• Počítač vykonáva program v strojovom kóde
Informatika 1
33
Používanie programu
Informatika 1
preklad
34
Model objektu
• Rozhranie – zoznam správ, ktoré prijíma
• Verejná časť – majú prístupné (vidia) všetky
objekty v okolí
• Atribúty
• Metódy
• Neverejné časti, má prístupné (vidí) len objekt
sám
Informatika 1
35
Ilustrácia štruktúry objektu
Informatika 1
atribút
rozhranie
metóda
správa
správa
36
Rozhranie objektu
• Zoznam všetkých správ
• Ponuka služieb poskytovaných objektom
• Potrebujeme poznať, ak chceme objekt použiť
• Jeden objekt komunikuje s iným objektom cez
jeho rozhranie
Informatika 1
37
Atribúty objektu
• Atribúty objektu modelujú jeho vlastnosti a
štruktúru
• Atribút má názov a hodnotu
• Príklady:
– výška práčky: 80 cm
– vek človeka: 19 rokov
– pohlavie človeka: žena
– značka televízora: Tesla
– občan SR: áno
Informatika 1
38
Stav objektu
• Aktuálne hodnoty všetkých atribútov objektu
nazývame stav objektu.
• Zmenou hodnoty ktoréhokoľvek atribútu sa mení
stav objektu.
• Kedy sú dva objekty v rovnakom stave?
• Na základe čoho sa zmení stav objektu?
Informatika 1
39
Chovanie objektu
„Každý hmotný bod v inerciálnej sústave zotrváva v
pokoji alebo v rovnomernom priamočiarom pohybe,
kým nie je nútený vonkajšími silami tento svoj stav
zmeniť.“
Isaac Newton
• Objekt zachováva svoj stav, kým nie je nútený
zmeniť ho na základe prijatej správy.
Informatika 1
40
Metódy objektu
• Reakcia objektu na doručenú správu – metóda
• Metóda – algoritmus (predpis), čo urobiť, keď
objekt príjme správu
• Metódy určujú možné chovanie objektu
Informatika 1
41
Správa → metóda
• Každej správe z rozhrania objektu je priradená
práve jedna metóda objektu
• protokol – zobrazenie množiny správ na množinu
metód
• V programovacích jazykoch (až na výnimky)
správa a metóda majú rovnakú štruktúru
• Poslanie správy – volanie metódy
Informatika 1
42
Objekt, trieda a inštancia
Informatika 1
Objekt
Trieda
Objekt
Inštancia
Objekt
Inštancia
43
Objekt, trieda a inštancia
• Továreň – objekt, ktorý vyrába iné objekty –
výrobky
– (často rovnako pomenovane ako továreň)
• Trieda – objekt, ktorý vytvára rovnaké objekty
• Inštancia – objekt, ktorý vyrobila trieda
• Príklad:
– Škoda
• trieda na auta značky Škoda
– škoda_ZA765CK, škoda_KM583AZ
• inštancie triedy Škoda
Informatika 1
44
Trieda ako továreň
• Objekt – prijíma správy
• Špeciálny objekt – vytvára (svoje) inštancie
• Kedy trieda vytvorí novú inštanciu?
• Špeciálna správa – žiadosť o novú inštanciu
Informatika 1
45
Trieda ako typ
• Na triedu sa dá pozerať aj ako na typ objektu
• Škoda je typ všetkých aut, ktoré boli vyrobené
továrňou Škoda
Informatika 1
46
Životný cyklus inštancie
• Príklad:
– továreň vyrobí nové auto
– auto používa jeho vlastník (vlastníci)
– posledný vlastník odovzdá staré auto do zberných
surovín
– alebo na mieste, kde ho prevezme zberná služba
Informatika 1
47
Ilustrácia životného cyklu
Informatika 1
čas
vytvorenie
a inicializácia
prijíma správy
zrušenie
48
Životný cyklus inštancie
• Časový interval existencie inštancie
• Na začiatku inštancia vzniká – vytvorí ju trieda
– V okamihu vzniku objektu musí byť definovaný aj jeho
stav – začiatočný stav
– V programovacích jazykoch je za nastavenie
začiatočného stavu zodpovedná špeciálna metóda
nazývaná konštruktor.
• Inštancia žije – poskytuje služby
• Na konci sa inštancia na požiadanie zničí, alebo ju
zruší zberná služba – garbage collector
Informatika 1
49
Identita objektu
• Identita objektu – vyjadruje vnútornú vlastnosť
objektu, fakt jeho existencie a jednoznačnú
odlíšiteľnosť od iných akokoľvek podobných
objektov
• Na vyjadrenie svojej identity objekty používajú
jednoznačnú identifikáciu – jednoznačné
vonkajšie označenie určitého objektu, pomocou
ktorého ho dokážu odlíšiť od všetkých podobných
– Môžeme modelovať pomocou atribútu
Informatika 1
50
Názov objektu
• Názov objektu je jeho pomenovanie, pomocou
ktorého sa naň odvolávame
• Objekt môže mať aj viac názvov
– Ja, ty, Jožko, pán majster – všetko sa vzťahuje na
rovnaký objekt
• Rovnaký názov môže v rôznych okamihoch
odkazovať na rôzne objekty
– obsluhovaný klient – najskôr je to pán Novák a potom
ho vystrieda pani Krásna, atď
• Názov na rozdiel od identity nie je unikátny
Informatika 1
51
Štruktúra správy
• príklad správy
kruhModry.posunVodorovne(in 100)
Informatika 1
52
Časti správy
• Adresát – objekt, ktorému je správa určená
– kruhModry
• Názov správy – selektor, naznačuje, o čo
adresáta žiadame
– posunVodorovne
• Parametre – spresňujú žiadosť
– (in 100)
Informatika 1
53
Parametre správy
• Vstupné – doplňujúce informácie pre adresáta
• Výstupné – informácie, ktoré adresát vráti
odosielateľovi ako výsledok reakcie na správu
• Návratová hodnota – špeciálna forma
výstupného parametra v programovacích
jazykoch
Informatika 1
54
Parametre správy
• adresát.selektor(in parameter1, out parameter2)
• in – označuje vstupný parameter
• out – označuje výstupný parameter
• inout – označuje parameter, ktorý je aj vstupný aj
výstupný
Informatika 1
55
Literatúra
• BARNES, D., KÖLLING, M.: Objects First with Java:
A Practical Introduction Using BlueJ. 3rd edition.
Pearson. 2006. ISBN 978-0-13-197629-0.
• PECINOVSKÝ, R.: Myslíme objektově v jazyku Java.
2 vydanie. Praha : Grada publishing. 2009.
ISBN 978-80-247-2653-3.
• KRAVAL, I.: Základy objektově orientovaného
programování za pomoci jazyka Microsoft®
Visual Basic 5.0. Praha : Computer Press. 1998.
ISBN 80-7226-047-2
• materiály na http://vzdelavanie.uniza.sk/
Informatika 1
56
Vďaka za pozornosť
Automaticky vygenerovaný textový náhľad. Pre plné formátovanie si stiahnite súbor.
nechodím na prednášky