58
Princípy objektového programovania Informatika 1

Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Princípy objektového programovania

Informatika 1

Page 2: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 3: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Veci okolo nás

Informatika 1 2

Page 4: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Informatika 1

Televízor – ako sa používa?

+ návod na použitie

3

Page 5: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Televízor – čo je vo vnútri?

• Z čoho sa skladá?

• Ako funguje?

• Musíme to vedieť, keď ho používame?

Informatika 1 4

Page 6: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Veci okolo nás

Informatika 1 5

Page 7: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Práčka – ako sa používa?

Informatika 1 6

Page 8: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Veci okolo nás

Informatika 1 7

Page 9: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Veci okolo nás

Informatika 1 8

Page 10: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Veci okolo nás

Informatika 1 9

Page 11: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Veci okolo nás

Informatika 1 10

Page 12: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Veci okolo nás

Informatika 1 11

Page 13: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Veci okolo nás

Informatika 1 12

Page 14: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 15: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 16: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Veci okolo nás

Informatika 1

objekty

15

Page 17: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Objekt televízor

Informatika 1 16

Page 18: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 19: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 20: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Objekt práčka

Informatika 1 19

Page 21: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Práčka má vlastnosti

• Rozmery

• Hmotnosť dávky prádla

• Trieda úspornosti

• Značka

• plnenie zhora alebo zboku

• ...

Informatika 1 20

Page 22: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Práčka má funkcie

• Perie

• Zohrieva vodu

• Plácha

• Odstreďuje (žmýka)

• ...

Informatika 1 21

Page 23: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Č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

Page 25: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 26: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Objekty spolupracujú

Informatika 1

Všeobecne budeme hovoriť, že

objekty si posielajú správy

25

Page 27: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Základné pojmy OP

• Objekt

• Správa

Informatika 1 26

Page 28: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Modelovanie objektov

Page 29: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 30: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Postup pri tvorbe programu

• Objekt reálneho sveta

• Logický model – UML

• Softvérový model – program v Jave

Informatika 1 29

Page 31: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Reálny objekt

Informatika 1 30

Page 32: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

UML model

Informatika 1 31

Page 33: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Softvérový model

Informatika 1 32

Page 34: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 35: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Používanie programu

Informatika 1

preklad

34

Page 36: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 37: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Ilustrácia štruktúry objektu

Informatika 1

atribút

rozhranie metóda

správa

správa

36

Page 38: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 39: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 40: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 41: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 42: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 43: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 44: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Objekt, trieda a inštancia

Informatika 1

Objekt Trieda

Objekt Inštancia

Objekt Inštancia

43

Page 45: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 46: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 47: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 48: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Ž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

Page 49: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Ilustrácia životného cyklu

Informatika 1

čas

vytvorenie a inicializácia

prijíma správy zrušenie

48

Page 50: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Ž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

Page 51: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 52: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 53: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Štruktúra správy

• príklad správy

kruhModry.posunVodorovne(in 100)

Informatika 1 52

Page 54: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Č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

Page 55: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 56: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 57: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

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

Page 58: Princípy objektového programovania€¦ · potrebné informácie –Človek stlačí tlačidlo na diaľkovom ovládači – číslo ... •Model je zjednodušením reality – uvažuje

Vďaka za pozornosť