+ All Categories
Home > Documents > Objektové programování

Objektové programování

Date post: 29-Jan-2016
Category:
Upload: marina
View: 52 times
Download: 0 times
Share this document with a friend
Description:
Objektové programování. Štěpán Šípal. Obsah cvičení. Objekty 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. - PowerPoint PPT Presentation
17
Štěpán Šípal
Transcript
Page 1: Objektové programování

Štěpán Šípal

Page 2: Objektové programování

Obsah cvičeníObjekty

Co to jsou objektyRozdíl strukturálního a objektového

programováníZapouzdřeníPolymorfismusDědičnost

OOP programováníTřídy, inicializaceMetody a proměnné

Page 3: Objektové programování

ObjektyObjekty 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.

Page 4: Objektové programování

Strukturální vs. OOPStrukturá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).

Page 5: Objektové programování

Strukturální vs. OOPObjekty 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.

Page 6: Objektové programování

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ě.

Page 7: Objektové programování

Třídy v JAVATří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é“.

Page 8: Objektové programování

Třídy v JAVAObjekty 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();

Page 9: Objektové programování

Proměnné v JAVAPromě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ěkV 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

Page 10: Objektové programování

Základní datové typy pro Javaint = celé čísloString = textboolean = TRUE/FALSE hodnota...U referenčních proměnných se jako jejich

datový typ používá název odkazované třídy.

Page 11: Objektové programování

Proměnné v Java IIProměnné se inicializují jako lokální, nebo

jako proměnné třídyLoká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

Page 12: Objektové programování
Page 13: Objektové programování

Metody JAVAMetody 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(){…….}

Page 14: Objektové programování

Třídy v JAVAMetody 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.

Page 15: Objektové programování

Dědičnost třídDě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.

Page 16: Objektové programování

PolymorfismusDí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í.

Page 17: Objektové programování

Abstraktní třídyZ 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ů.


Recommended