• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Úvod do OOP
 

Úvod do OOP

on

  • 1,229 views

 

Statistics

Views

Total Views
1,229
Views on SlideShare
1,229
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Úvod do OOP Úvod do OOP Presentation Transcript

    • Objektově orientovaný přístup Tomáš Holas © UNICORN COLLEGE 2010
    • Úvod do OOP Tomáš Holas © UNICORN COLLEGE 2010
    • Agenda Co to je objektově orientovaný přístup Problémy při vývoji software Znovupoužitelnost Evoluce programátorských metodik Základní kocepty OOP © UNICORN COLLEGE 2010
    • Co znamená OOP? Program se skládá z entit zvaných objekty, které odpovídají konceptům, se kterými bude program manipulovat Aplikace pro řízení firmy by mohla mít např. objekty Zaměstnanec, Pobočka, Produkt … Pro specifikaci vlastností a struktury objektů slouží třída Třída Zaměstnanec je vzor, který se použije k vytvoření mnoha různých objektů typu Zaměstnanec. Objekty komunikují tak, že si navzájem posílají zprávy Objektu Zaměstnanec pošleme zprávu "Jak se jmenuješ?" © UNICORN COLLEGE 2010
    • Co může být objektově orientované Programovací styl Koncepty z problémové domény se mapují přímo na objekty ve zdrojovém kódu Filozofie Způsob designu, implementace a přemýšlení o zdrojovém kódu Technologie Objektově orientované metodiky, programovací jazyky, databáze © UNICORN COLLEGE 2010
    • Softwarová krize Společnost je stále více závislá na softwaru Problémy softwaru: Velké množství chyb Složitý na pochopení Špatně se udržuje Špatně se rozšiřuje Stále znovu "vynalézáme kolo" vysoké náklady na vývoj vždy nové zavlečené chyby © UNICORN COLLEGE 2010
    • Řešení: Znovupoužitelnost! Programy se píší ručně, od základů.. … jako výroba vlastních šroubků při stavbě domu Průmyslová revoluce: montážní linka, náhradní díly Cíl: Vyvinout znovupoužitelné softwarové komponety Jednoduše ovladatelné Snadné na pochopení Vhodné k použití v různých programech Nový kód využívá komponent a řeší už specifické problémy Znovupoužitelnost není cut & paste Pokud máte nutkání zkopírovat kód, měli byste vytvořit komponentu © UNICORN COLLEGE 2010
    • Výhody znovupoužitelnosti Méně kódu – nižší cena vývoje Mnohokrát použitý kód = spolehlivě otestovaný kód Chybu stačí opravit na jednom místě Vyšší specializace programátorů Můj kód používají ostatní – motivace k tomu psát ho dobře © UNICORN COLLEGE 2010
    • Evoluce metodik © UNICORN COLLEGE 2010
    • Modulární programování Rozdělit velké problémy na menší, snadněji uchopitelné Rozdělením velkých programů na menší části Každou část kódovat a testovat samostatně Jádrem modularizace je subrutina (1950) Nevyřešené problémy: Které části programu převést na subrutiny Jaké budou argumenty, návratové hodnoty a vedlejší efekty © UNICORN COLLEGE 2010
    • Strukturované programování Systematický způsob modularizace (1960) Funkcionální dekompozice Přístup shoda-dolu Rozdělování funkcionality od nejvyšší úrovně, na menší a menší komponenty, dokud nedostaneme konkrétní subrutiny © UNICORN COLLEGE 2010
    • Limity funkcionální dekompozice Funkce vyvíjejících se systému nelze vždy předvídat Úspěšný systém se bude rozšiřovat Nutnost implementovat více úkolů, než bylo původně v plánu Systém se upraví aby zahrnoval počáteční změny Z úprav se stanou "hacky" Požadovaná funkcionalita se vzdaluje od původní dekompozice Komplexita a nestabilita systému narůstá Modifikace vyžadují odvážnější hacky, nebo kompletní přepsání Proces se zastavuje, když náklady přerostou užitek z nové funkcionality © UNICORN COLLEGE 2010
    • Problém globálních dat Zvýšení flexibility - globální data Sdílená mezi subrutinami Každá subrutina pracující s globálními daty může nepředvídatelným způsobem ovlivňovat ostatní subrutiny © UNICORN COLLEGE 2010
    • Problematické přizpůsobení kódu Pro implementaci podobné (ne identické) operace na existujících datech musíme duplikovat kód Kolekce dat s různými typy vyžadují náročné rozhodování © UNICORN COLLEGE 2010
    • Jak to řeší OOP? Předávání zpráv Jasná a konzistentní syntaxe pro manipulaci s objekty Zapouzdření Způsob jak ochránit data a vnitřní funkce před nežádoucími zásahy z venku Dědičnost Umožňuje definovat nové datové struktury na základě těch starých (otestovaných), za použití existujícího kódu Polymorfismus Datové struktury si samy udržují informace o svých typech Všechny objekty obsahují kompletní sadu funkcí pro práci se svými daty © UNICORN COLLEGE 2010
    • Stavební prvky OOP © UNICORN COLLEGE 2010
    • Objekt Objekt je souhrn informací, který modeluje některé vysokoúrovňové koncepty z problémové domény Existuje 1:1 vazba mezi "realnými věcmi" z problémové domény a objekty v OO programu Práce s OO programy je intuitivní, jedná se o určitý typ "virtuální reality" Struktura a chování objektu je popsána v definici třídy objektu Definováním objektů vytváříme další datové typy Celé číslo Řetězec Automobil © UNICORN COLLEGE 2010
    • Objekt © UNICORN COLLEGE 2010
    • Třída a instance Třída je vzor pro vytváření mnoha podobných objektů Vytvořený objekt je instance dané třídy Objekty ze stejné třídy budou mít stejnou základní strukturu a funkcionalitu Z jedné třídy je možné vytvořit mnoho instancí © UNICORN COLLEGE 2010
    • Třída a instance © UNICORN COLLEGE 2010
    • Instanční proměnné Instanční proměnná (nebo atribut) objektu je určitá informace náležející jednotlivé instanci (objektu) Jméno objektu typu Člověk, model nebo rok objektu Automobil Instanční proměnné jsou definovány v třídě objektu Každý objekt má vlastní privátní místo, kam si ukládá svoje data © UNICORN COLLEGE 2010
    • Instanční metody Instanční metody jsou akce, které je objekt schopen provádět Objekt třídy Člověk by měl umět sdělit své jméno, příjmení.. Objekt třídy Auto by měl umět nastartovat, zařadit rychlost.. Instanční metoda se implementuje se pomocí speciální subrutiny, která je připojená k třídě objektu, a má přístup ke všem instančním proměnným objektu © UNICORN COLLEGE 2010
    • Metody a zprávy Zpráva je požadavek, který pošleme objektu, když chceme, aby provedl nějakou akci případně nastavil nebo vrátil hodnotu atributu Metoda je část kódu, která je zavolána, aby obsloužila akci požadovanou danou zprávou © UNICORN COLLEGE 2010
    • Jak vypadá zpráva Zpráva se skládá ze 3 částí Příjemce: objekt přijímající zprávu Jméno metody: jakou akci chceme na objektu vyvolat Parametry: argumenty které zpráva vyžaduje © UNICORN COLLEGE 2010
    • Mapování problémové domény © UNICORN COLLEGE 2010
    • Ukázková třída © UNICORN COLLEGE 2010
    • Použití třídy © UNICORN COLLEGE 2010
    • © UNICORN COLLEGE 2010