Objektovo orientované programovanie I ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 2

Podobné dokumenty
Objektovo orientované programovanie v C# ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 3

ALGORITMY A PROGRAMOVANIE VO VÝVOJOVOM PROSTREDÍ LAZARUS. Vývojové prostredie Lazarus, prvý program

PODPROGRAMY. Vyčlenenie podprogramu a jeho pomenovanie robíme v deklarácii programu a aktiváciu vykonáme volaním podprogramu.

Textový editor WORD. Práca s obrázkami a automatickými tvarmi vo Worde

Konfigurácia IP Bell 02C Dverný vrátnik a FIBARO Home Center 2

VECIT 2006 Tento materiál vznikol v rámci projektu, ktorý je spolufinancovaný Európskou úniou. 1/4

KOMISNÝ PREDAJ. Obr. 1

Programovanie.NET, C++ - najbližšie termíny:

v y d á v a m m e t o d i c k é u s m e r n e n i e:

Verifikácia a falzifikácia

Užívateľská príručka systému CEHZ. Základné zostavy Farmy podľa druhu činnosti

MATLAB (1) - úvod do programovania vedeckých problémov. LS 2017, 8.predn.

Referenčná ponuka na prístup ku káblovodom a infraštruktúre. Príloha 7 Poplatky a ceny

DVDStyler. Získanie programu. Inštalovanie. Začíname tvoriť DVD

VYSPORIADANIE PREHRADENÝCH ZÁVÄZKOV A POHĽADÁVOK

EG Informácie okolo nás 2. ročník

Zvyškové triedy podľa modulu

Metóda vetiev a hraníc (Branch and Bound Method)

Moderné vzdelávanie pre vedomostnú spoločnosť/projekt je spolufinancovaný zo zdrojov EÚ. Grafy

Pracovné prostredie MS EXCEL 2003.

Operačný systém Úvodná prednáška

Hromadná korešpondencia v programe Word Lektor: Ing. Jaroslav Mišovych

Téma : Špecifiká marketingu finančných služieb

Prevody z pointfree tvaru na pointwise tvar

Dell S2718H/S2718HX/S2718HN/ S2718NX Dell Display Manager Návod na obsluhu

P O D M I E N K Y V Ý M E N Y E U R P A L I E T

Limita funkcie. Čo rozumieme pod blížiť sa? y x. 2 lim 3

Skákalka. Otvoríme si program Zoner Callisto, cesta je Programy Aplikácie Grafika Zoner Callisto.

Program "Inventúra program.xlsm"

Manuál pre Registrovaných používateľov / Klientov

Základy optických systémov

Navýšenie (brutácia) nepeňažného príjmu v programe Mzdy a personalistika

Návod na používanie Centrálnej úradnej elektronickej tabule (CUET)

Automatické pohony na brány

Total Commander. Základné nastavenia

AKADEMICKÝ INFORMAČNÝ SYSTÉM

Vytvorenie používateľov a nastavenie prístupov

Pred samotnou prácou s objednávkami odporúčame vykonať súvisiace nastavenia cez menu Firma - Nastavenie

Návod na používanie súboru na vyhodnotenie testov všeobecnej pohybovej výkonnosti

MANUÁL K TVORBE CVIČENÍ NA ÚLOHY S POROZUMENÍM

Task, async, await METÓ DY VÝPOČTOVEJ INTELIGENCIE A C# FA K ULTA E L E K T ROTECHNIKY A INFORMATIKY S LOVENSKÁ T E CHNICKÁ U NIVERZITA

Import Excel Univerzál

Formuláre PowerPoint MGR. LUCIA BUDINSKÁ,

nastavenie a realizácia vzájomných zápočtov v Money S4 / Money S5

Úroveň strojového kódu procesor Intel Pentium. Adresovanie pamäte

(Text s významom pre EHP)

TomTom Referenčná príručka

RODIČOVSKÉ KONTO EDUPAGE

Erasmus+ Online jazyková podpora (OLS) Využite svoj pobyt Erasmus+ naplno!

Mgr. Stanislav Fila, psychológ CPPPaP Banská Bystrica Centrum pedagogicko-psychologického poradenstva a prevencie (bývalá KPPP) Banská Bystrica

Modré obrázkové slová skladanie slov z písmen

Ako funguje stav účtu - prehľad o platbách na zdravotné odvody

AIS2 Hodnotenie študentov po skúške POMÔCKA PRE VYUČUJÚCICH

Návod na viacnásobné podpisovanie dokumentov prostredníctvom aplikácie D.Signer/XAdES v prostredí elektronickej schránky

Inventúra účtov- základný popis.

Súťaž Vráťme knihy do škôl je tu už po 5-krát!

Návrh postupu pre stanovenie počtu odborných zástupcov na prevádzkovanie verejných vodovodov a verejných kanalizácií v správe vodárenských spoločnosti

Vážení používatelia programu WISP.

Programovanie I. Úvod do programovania Mgr. Stanislav Horal, Katedra informatiky, FPV, UCM

DOBROPISY. Dobropisy je potrebné rozlišovať podľa základného rozlíšenia: 1. dodavateľské 2. odberateľské

Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov

Postup registrácie certifikátov do Windows

Na aute vyfarbi celé predné koleso na zeleno a pneumatiku zadného kolesa vyfarbi na červeno.

Manuál Generovanie prístupových práv E-Recept

Návod na použitie zápisníka jedál

Súťaž Vráťme knihy do škôl je tu už po 7-krát!

Postup pri aktivácii elektronickej schránky na doručovanie pre právnické osoby, ktoré nie sú zapísané do obchodného registra

Vývoj cien energií vo vybraných krajinách V4

Príručka Mobility Tool + pre príjemcov grantu

Imagine. Popis prostredia:

Používateľská príručka: MOODLE

Postup pri aktivácii elektronickej schránky na doručovanie pre fyzické osoby

5.3.3 Vyhlásenie na zdanenie príjmov zo závislej činnosti

Postup pri deaktivácii elektronickej schránky na doručovanie pre fyzické osoby

MAIS. Verejný portál - kalendárny rozvrh. Používateľská minipríručka pre používateľov systému MAIS. APZ Bratislava

NEINTERAKTÍVNA KOMUNIKÁCIA

Kreslenie vo Worde Chceme napríklad nakresliť čiaru priamku. V paneli ponúk klikneme na Vložiť a v paneli nástrojov klikneme na Tvary.

Nová maturita - zmeny v maturite 2013

Všeobecne záväzné nariadenie Mesta Trenčianske Teplice č. x/2016 o používaní pyrotechnických výrobkov na území mesta Trenčianske Teplice

Hotline - účtovníctvo tel.: 0905/ , denne od 8 00 do HUMANET ÚČTOVNÍCTVO

Ako započítať daňovú licenciu

Dealer Extranet 3. Cenové ponuky

To bolo ľahké. Dokážete nakresliť kúsok od prvého stromčeka rovnaký? Asi áno, veď môžete použiť tie isté príkazy.

Čo je to Refactoring?

Medzitrh práce. Michal Páleník Inštitút zamestnanosti,

Pozičné číselné sústavy. Dejiny. Číselná sústava je spôsob, akým sú zapisované čísla pomocou znakov (nazývaných cifry).

Produktovo-skupinová inzercia so spoločnosťou Google v spolupráci s ASData a BlueWinston.

POSTUP GENEROVANIA ŽIADOSTI O KVALIFIKOVANÝ CERTIFIKÁT POMOCOU PROGRAMU COMFORTCHIP.

Plánovanie procesov a vlákien

Odkazy na pravidlá sú podľa aktuálnych pravidiel na stránke Slovenská verzia pravidiel sa pripravuje

Ružové obrázkové slová skladanie slov z písmen

Veľké porovnanie HD technológií - HD-TVI, HD-CVI, HD-SDI, analógové a IP kamery

Kombinatorická pravdepodobnosť (opakovanie)

DIZAJN MANUÁL KULT MINOR LOGO MANUÁL. Fond na podporu kultúry národnostných menšín

Vypracovalo: oddelenie redakcie ÚPVS, Národná agentúra pre sieťové a elektronické služby

Zaciatok programovania na

Zásady manipulácie, zberu, prepravy a nakladania s VŽP. Vedľajší živočíšny produkt kuchynský odpad materiál kategórie 3

Neplatené voľno / absencia zadanie v programe, oznamovacia povinnosť

OBOZNÁMTE SA S VAŠÍM TELEFÓNOM

KORUNOVAČNÁ BRATISLAVA MANUÁL LOGA VER. 1/2017

Transkript:

Objektovo orientované programovanie I ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 2

OOP základné pojmy ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 2

Objektovo orientované programovanie Objektové programovanie alebo objektovo orientované programovanie (z angl. Object-oriented programming, skratka OOP) je metodika vývoja softvéru založená na používaní dátových štruktúr nazývaných objekty a ich interakcie na vývoj aplikácií Princípy objektového programovania boli rozpracované už v 70. rokoch 20. storočia, no širšie sa vo vývoji softvéru začalo uplatňovať až v koncom 20. storočia Objekty majú svoje vlastnosti, metódy a udalosti, pomocou ktorých objekt vykonáva určité činnosti, na ktoré bol naprogramovaný Z obsahového hľadiska vlastnosti typu trieda sú vo svojej podstate položky typu záznam. Metódy a udalosti sú svojim charakterom funkcie a procedúry

Objektovo orientované programovanie Udalosťou sa nazýva každá zmena stavových veličín, napr. Click, DoubleClick, stlačenie klávesy na klávesnici, impulz z časovača, zmena veľkosti okna, zatvorenie okna Základom objektového programovania je dátový typ trieda Dátový typ trieda je odvodený dátový typ a vychádza z dátového typu štruktúra (v jazyku Pascal, Delphi - záznam (record), C, C++ - štruktúra (struct)) Objekt - premenná typu trieda Existuje mnoho programovacích jazykov používajúcich princíp OOP, napr.: Visual Basic, C++, C Sharp, Java, Python, PHP a mnoho iných OOP dramaticky zlepšuje prehľadnosť kódu, uľahčuje jeho písanie a zvyšuje jeho znovupoužiteľnosť

Prečo používame OOP? - video

Objekt Objekty sú v podstate iba štruktúry obsahujúce rôzne premenné a s nimi súvisiace funkcie Premenné vo vnútri objektov zvyknú byť nazývané members (dátové členy) alebo fields (políčka) alebo aj properties (vlastnosti) a funkcie sa volajú methods (metódy)

Trieda Napriek tomu, že hovoríme o objektovo orientovanom programovaní sa v samotných programoch málokedy stretnete s výrazom "object Všade na vás pozerá kľúčové slovo "class, po slovensky trieda Triedy sú vlastne šablónami, podľa ktorých sa vytvárajú objekty

Trieda Ako vidíte na obrázku, objekty sú konkrétne výskyty (inštancie) nejakej triedy Objekty sa navzájom líšia dátami, ktoré nesú (toto sa občas zvykne nazývať "stav objektu" - state)

Ukážka pseudokódu, konštruktor V nasledujúcom (pseudo)kóde si môžete všimnúť špeciálne metódy s rovnakým názvom ako trieda Sú to konštruktory, ktorých pomenovanie vychádza z toho, že sa volajú vždy keď sa vytvára/konštruuje nový objekt a slúžia na jeho inicializáciu Vytváranie objektu ("inštanciáciu") je vidno nižšie, v riadku s kľúčovým slovom new Definujeme 2 konštruktory, aby sme obdĺžniky mohli vytvárať buď bez parametrov (vtedy budú mať strany dĺžku 0) alebo s dvoma parametrami

Triedy a objekty - video

4 základné paradigmy OOP - abstrakcia - video

Dedičnosť (Inheritance) Jednou zo základných výhod OOP je dedičnosť (angl. inheritance) Ak ste chceli v štandardnom, procedurálnom programovaní zmeniť časť správania v určitých prípadoch, kód bolo treba znečisťovať všelijakými podmienkami Dedičnosť toto eliminuje tak, že môžete od existujúcej triedy odvodiť ďalšiu, pričom získa všetky vlastnosti pôvodnej triedy a vy môžete poprepisovať a popridávať, čo treba

Dedičnosť (Inheritance) Turbo-tlačidlo zdedilo metódu onleftclick() a pridalo metódy, ktoré by sa mohli volať pri pravom kliku, strednom kliku, atď. Navyše prepísalo vykresľovaciu metódu obyčajného tlačidla vlastnou metódou, keďže sa neuspokojí len tak s hocijakým vzhľadom Jednoducho je náročnejšie, ale stále vychádza z rovnakého základu a správa sa podobne ako naše obyčajné tlačidlo, takže ho "zdedíme"

Dedičnosť (Inheritance) Prepisovanie metód (v našom prípade to bola metóda kresli()) sa v originále volá "method overriding", čo je slovo mierne podobné s overloadingom Overloading (preťažovanie) je ale niečo iné - existencia viacero funkcií(metód) s rovnakým názvom a rôznymi parametrami (príklad ste videli s konštruktormi obdĺžnika), takže pozor

Dedičnosť - video

Abstrakcia Pod abstrakciou sa vo všeobecnosti chápe zameranie sa na kľúčové vlastnosti nejakého prvku reálneho sveta (alebo aj nereálneho) V OOP to zužitkujeme to hlavne pri abstraktných triedach, čo ukážeme na príklade s útvarmi, ktoré budeme vykresľovať Abstraktná trieda Utvar určuje, že všetky od nej odvodené triedy sa budú dať vykresliť a budú mať nejakú farbu Abstraktná trieda sa sama o sebe nedá vytvoriť, čo dáva zmysel, lebo taký "útvar" nemá žiadnu konkrétnu podobu

Abstrakcia Vytvoriť sa dajú len zdedené triedy, ktoré v tomto prípade implementujú vykresľovaciu funkciu Triedy môžu byť aj polo-abstraktné v zmysle, že môžete implementovať niektoré metódy a ostatné nechať neimplementované Podobnou záležitosťou ako abstraktné triedy sú v niektorých jazykoch (aj C#) rozhrania ("interface") Tie obsahujú iba metódy a žiadna z nich nie je implementovaná

Polymorfizmus V OOP ho možno vidieť v rôznych konceptoch Polymorfizmus je mechanizmus, ktorý umožňuje objektom rôznych typov odpovedať na volanie rovnakej metódy rôznym spôsobom Polymorfizmus (viacznačnosť) je schopnosť objektu nadobúdať viacero foriem

Polymorfizmus - video

Zapuzdrenie (encapsulation) Zapuzdrenie skrýva vnútorné fungovanie triedy pred ostatnými triedami To je dobré ak chcete zabrániť používaniu vnútorných mechanizmov, ktoré by sa mohli zmeniť - napríklad vytvoríte triedu, ktorá sa pripája na server a využíva na to určité rozhranie - vy sa po istom čase rozhodnete, že vymeníte rozhranie za lepšie a rýchlejšie. Ak by ste ponechali k nemu prístup všetkým programátorom, mohlo by sa stať, že niekto napíše kód, ktorý priamo používa špecifické funkcie tohoto rozhrania, takže pri jeho výmene by sa celý program rozpadol Vďaka zapuzdreniu bude obmedzený na vami sprístupnené funkcie, ktoré by ste prispôsobili zmene rozhrania a celý program funguje ďalej, ako by sa nič nezmenilo Takto vytvárate tzv. voľne viazané triedy, ktoré majú oveľa vyššiu znovupoužiteľnosť ako keby sa každá trieda vŕtala vo vnútorných záležitostiach iných tried

Zapuzdrenie (encapsulation) Možno ste sa už stretli so slovami public, protected a private sú to modifikátory prístupu public dovoľuje prístup k metóde/údajom komukoľvek protected prvky sú dostupné iba zvnútra triedy a odvodených tried private čisto iba z triedy samotnej V súvislosti so zapuzdrením je často vidieť metódy getniečo() a setniečo() Get/set metódy majú význam v situáciách: 1) keď sa hodnota pred uložením alebo pred vrátením musí nejako spracovať 2) ak potrebujete zamedziť prepisovaniu alebo čítaniu hodnoty

Zapuzdrenie (encapsulation) Všimnite si špeciálnu premennú this Tá obsahuje vždy inštanciu aktuálneho objektu a v tomto prípade ju používame, aby sme vedeli odlíšiť parameter "meno" a dátového člena s rovnakým názvom Inak sa používa ak chcete inému objektu odkázať na "seba"

Zapuzdrenie - video

Použité zdroje http://wikipedia.org http://www.zajtra.sk/programovanie/165/objektovo-orientovaneprogramovanie-v-normalnej-ludskej-reci http://youtube.com