Objektové programování

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

(instance konkrétní třídy)
Vlastní skript může být umístěn: v hlavičce stránky v těle stránky
Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
Třída SIMSET je druhou standardní systémovou třídou, která obsahuje prostředky pro práci se spojovými seznamy. KRUHOVÉ SPOJOVÉ SEZNAMY Spojový seznam –
Pascal - příklady.
Selektory 1 1. Selektor elementu Deklarované styly budou použité při každém vyskytování elementu v dokumentu. Selektor elementu se obvykle používá pro.
ÚVOD DO CPP 7 Dědičnost - pokračování
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
PJV151 Vnořené a vnitřní členy mohou být členy tříd a interfejsů. Je-li X obalem Y a Y je obalem Z, pak Z získá jméno X$Y$Z - kompilací vzniknou classy.
Polymorfismus Dědičnost
C++ Přednáška 3 Konstantní a statické členy tříd, ukazatel this, konstantní instance třídy Ing. Jiří Kulhánek , kat. 352, VŠB TU Ostrava 2004.
Programování v C++ Cvičení.
Čtvrté cvičení Objektové programování Objektový model v Javě
Programování v Pascalu Přednáška 7
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
C# - datové typy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
State. State – kontext a problém Kontext  chování objektu má záviset na jeho stavu, který se typicky mění za běhu Neflexibilní řešení  metody obsahují.
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
Seminář C++ 9. cvičení Šablony Ing. Jan Mikulka. Šablony ► template – vzory, podle kterých může překladač tvořit skupiny podobných tříd nebo funkcí, které.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
PB161 Jmenné prostory, I/O proudy PB161 | Jmenné prostory, IO proudy PB161 – Programování v jazyce C++ Objektově Orientované Programování.
Přehled současných způsobů tvorby programů
Třída jako zdroj funkcionality
Objektové orientované programování Objektově orientované problémy v PHP Lukáš Masopust 2008.
C# - funkce a procedury Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Datové typy a práce s nimi
Strategy. Strategy – „All-in-1“ na začátek class AStrategy { public: virtual void Algorithm()=0; protected: AStrategy(); }; class SpecificStrategy: public.
Seminář C++ 4. cvičení Objekty Ing. Jan Mikulka. Co je objekt ► obraz třídy i instance ► třída – definovaná za pomocí klíčového slova class ► instance.
6. cvičení Polymorfismus
Počítače a programování 1
JavaScript Podmínky, cykly a pole.
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Algoritmizace a programování Objektově orientované programování - 16 Mgr. Josef Nožička IKT Algoritmizace a programování
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
IB111 Programování a algoritmizace
Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
OSNOVA: a) Přetížení členských funkcí b) Dědičnost tříd Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST BPC2E.
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
Principy OOP Objektově orientované programování vychá-zí ze třech základních principů (rysů): zapouzdření (encapsulation) dědičnost (inheritance) polymorfismus.
Objektově orientovaný přístup (úvod)
PJV031 Přetypování (casting) Objekty, atributy, lokální proměnné, parametry a návratové hodnoty metod mají definovaný, neměnný typ. Jsou dva druhy typů:
STRING A UKAZATELE. Co to je řetězec? Řetězec v Javě je samostatný objekt. Je konstantní, co znamená, že jednou vytvořený řetězec nelze změnit. Chceme-li.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Pokročilé programování v C++ (část B)
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Observer Martin Dráb Návrhové vzory, Co to je?  Definuje závislost 1:N mezi objekty  Závislé objekty jsou informovány o změně stavu  Konzistentní.
Template Method. Motivační příklad – reálný svět Čaj 1) Uvař vodu 2) Dej do hrnku sáček čaje 3) Zalij hrnek 4) Přisyp cukr a vymačkej citrón Káva 1) Uvař.
Programovací jazyk C# 2. část. Datové typy C# rozeznává dva druhy datových typů, hodnotové a referenční. Hodnotové datové typy Proměnné hodnotového datového.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Datové typy a operátory Základní programové.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA:
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
Programování v jazyce C++ Speciality jazyka C++, úvod do OOP.
Vývojová prostředí Objektově Orientované Programování OB21-OP-EL-KON-DOL-M Orbis pictus 21. století.
Y36PJC Programování v jazyce C/C++
Úvod do C# - OOP Jaroslav BURDYS 4IT.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Strukturované typy proměnných v programovacím jazyce Pascal - 1.hodina
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Návrhový vzor Flyweight
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Bridge.
C# přehled vlastností.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

Objektové programování Štěpán Šípal

Obsah cvičení Objekty OOP programování Co to jsou objekty Rozdíl strukturálního a objektového programování Zapouzdření Polymorfismus Dědičnost OOP programování Třídy, inicializace Metody a proměnné

Objekty Objekty můžeme vidět všude kolem nás. Objekty v sobě mají uložené své vlastnosti. Objekty mají metody, které mohou ovlivňovat jejich vnitřní stav (vlastnosti). Objekty mezi sebou vzájemně komunikují pomocí zasílání zpráv.

Strukturální vs. OOP Strukturální programování odděluje data a algoritmy. V objektovém programování jsou data zapouzdřena v objektech a jejich manipulace je umožněna s pomocí metod objektu. V objektovém programování tedy nemusíme znát a psát přesné algoritmy uložené uvnitř objektu (co se děje když dupneme na plyn v motoru), ale stačí nám znát metodu objektu, která zajistí požadovanou změnu stavu (zrychlení auta).

Strukturální vs. OOP Objekty jsou znovupoužitelné. Změny uvnitř algoritmů objektu (výměna motoru) neovlivní funkčnost ostatních objektů (po sešlápnutí plynu bude pořád zrychlovat). Objektové programování dává lepší předpoklady pro kvalitní rozdělení práce.

Zapouzdření objektů Zapouzdření objektů nám umožňuje skrývat před okolím vlastnosti a některé metody objektu. Díky zapouzdření tak můžeme omezit možnost zadání chybné vlastnosti stran jiného objektu. Také díky němu můžeme objekty upravovat nezávisle na ostatních (pokud ponecháme stejné metody rozhraní pro komunikaci s okolím). V objektu tak můžeme například změnit zdroj dat z DB na XML soubor a podobně.

Třídy v JAVA Třídy v jazyce JAVA jsou v podstatě šablonami objektů. Jejich vlastnosti jsou charakterizovány proměnnými. Operace se na nich provádějí pomocí metod. Při inicializaci třídy vytvoříme objekt – každý objekt vytvořený na základě třídy je samostatný, má samostatné vlastnosti a metody. V Javě inicializujeme třídy pomocí: NázevTřídy JménoProměnné = new NázevTřídy(); Metody objektu budou poté dostupné pod proměnnou „JménoProměnné“.

Třídy v JAVA Objekty v Javě spolu komunikují pomocí zasílání zpráv – volání metod. Vždy musíme mít odkaz na instanci objektu dostupný v některé proměnné: Kruh novy = new Kruh(); Pokud chceme na objektu vykonat nějakou metodu, zavoláme jej jménem proměnné a metody takto: novy.Vykresli(); Pokud potřebujeme získat hodnotu: Int hodnota = novy.VypoctiObsah();

Proměnné v JAVA Proměnné v jazyce JAVA je nutné před použitím inicializovat – určit jak se budou jmenovat a jakého budou typu. int vek; //inicializace celočíselné proměnné věk V Javě existují primitivní proměnné, obsahující jednoduchou hodnotu – číslo či text, tak proměnné sloužící jako odkaz na jiný objekt. vek je primitivní proměnná Zamestnanec bude proměnná odkazující na instanci třídy zaměstnance

Základní datové typy pro Java int = celé číslo String = text boolean = TRUE/FALSE hodnota ... U referenčních proměnných se jako jejich datový typ používá název odkazované třídy.

Proměnné v Java II Proměnné se inicializují jako lokální, nebo jako proměnné třídy Lokální proměnné se inicializují uvnitř jednotlivých metod a nejsou dostupné pro ostatní metody stejné třídy Lokální proměnné se po provedení metody „zapomenou“ Třídní proměnné = proměnné inicializované ihned za definicí třídy jsou dostupné všem metodám dané třídy

Metody JAVA Metody ve třídách Java jsou jednotlivé činnosti, které daný objekt může vykonávat. Metoda je základní jednotkou pro komunikaci mezi třídami. Metoda může vracet hodnoty a může požadovat proměnné jako parametr. Deklarace metody vracející číslo: public int vydel(){…….} Deklarace třídy nevracející nic: public void posunSe(){…….}

Třídy v JAVA Metody a proměnné objektů zapisujeme s modifikátory private, public a protected. Private = nebude dostupná mimo objekt, tedy budou ji moci změnit pouze metody objektu. Public = bude dostupná mimo objekt – obvykle se public nechávají pouze metody rozhraní. V OOP by měly být všechny proměnné private. Protected = nebude dostupná mimo objekt, bude však dostupná potomkům třídy.

Dědičnost tříd Dědičnost umožňuje určité rozšiřování možností tříd. Nově vytvořená třída – potomek bude mít vlastnosti a metody svého předka + jí můžeme přidat vlastní metody a vlastnosti. Pokud tedy budeme mít například třídu Kruh(), která bude mít metodu vykresli() kreslící kruh na daný výstup, můžeme jí vytvořit potomka KruhPlus(), kterému přidáme ještě metodu vypočtiObsah() vracející obsah kruhu.

Polymorfismus Díky polymorfismu se u jednoho objektu může vyskytovat více stejně pojmenovaných metod, odlišených na základě počtu, či typu parametru – tzv. přetížené metody. Dále polymorfismus znamená možnost existence stejných metod požadujících stejné parametry u různých tříd, což umožňuje jejich případné zaměňování.

Abstraktní třídy Z abstraktní třídy není možné vytvořit instanci. Jedná se o jakousi „šablonu tříd“, je určena pro dědění a instancovat lze pouze její potomky. Sama může mít některé metody prázdné – musíme je v potomku přepsat. Jsou to pouze základní kameny pro stavbu složitějších tříd objektů.