1 / 17

Objektové programování

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.

marina
Download Presentation

Objektové programování

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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é

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

  4. 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).

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

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

  7. 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é“.

  8. 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();

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

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

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

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

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

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

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

  16. 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ů.

More Related