6. Vizuální a OOP

Delphi

Základním prvkem aplikace je objekt, který zahrnuje data (klasické datové struktury) a programový kód  manipulující s těmito daty (procedury a funkce). OOP by mělo výrazně usnadnit pozdější úpravy a údržbu. Komponentová architektura Delphi podporuje OOP.

 

Základní principy 

  • Zapouzdření
    • Propojení datových položek navzájem a s kódem programu.
  • Dědičnost
    • Nové objekty lze vytvářet jako potomky svých předků, od nichž dědí vlastnosti, pouze se přidávají nové.
    • Výhody – sdílení kódu, snazší rozšíření o nové funkce a vlastnosti, mnohotvarost.
  • Polymorfismus
    • Schopnost přizpůsobit chování objektu konkrétní instanci tohoto objektu.

 

Základní pojmy

  • Položka (pole)
    • Proměnná obsažená uvnitř objektu.
  • Metoda
    • Určuje chování objektu, je pojmenovaná procedura či funkce, zapouzdřená, patřící  objektu.
  • Konstruktor
    • Metoda, vytváří danou instanci objektu v paměti (objekty vytvářeny dynamicky).
  • Destruktor
    • Uvolní paměť alokovanou dané instanci.
  • Vlastnost
    • Pomocí vlastností přistupujeme k datům obsaženým objektu.

 

Typy metod

  • Statické
    • Jsou implicitním typem bez direktivy.
    • Odpovídají voláním klasických procedur a funkcí.
    • Překladač jim přiřadí prostor v paměti a vyřeší všechny jejich vazby v době překladu.
    • Jsou rychlé.
    • Není možné jejich předefinování.
  • Virtuální
    • Mohou být předefinovány.
    • Překladač vytváří VMT=virtual method table (slouží k nalezení adresy procedury).
    • Až  za běhu programu.
    • Náročnější na paměť.
    • Poměrně rychlé.
    • Deklarují se pomocí klíčového slova virtual.
  • Dynamické
    • Obdobné jako virtuální.
    • Překladač vytváří DMT (obsahuje narozdíl od VMT metody deklarované v daném  objektu – ne metody předků).
    • Mají menší spotřebu paměti.
    • Jsou pomalejší.
    • Deklarují se pomocí klíčového slova dynamic.

 

Třídy

Obsahují určitá vnitřní data a určité metody, charakterizují vlastnosti a chování několika velmi podobných objektů. Objekt je skutečný útvar, vztah mezi objektem a třídou je stejný jako mezi proměnnou a datovým typem. V některých jazycích i dřívějších verzích Pascalu se objekt používal k definici třídy, termín instance objektu označoval skutečný objekt. V Delphi pro definici třídy se používá klíčové slovo class.

 

Přístupová práva k objektům

Formulář má unitu, kde jsou automaticky vytvářeny sekce public (metody a proměnné jsou přístupné odkudkoliv z programu) a private (deklarace přístupná jen v rámci dané unity).

Celkem existují 4 modifikátory:

  • private
    • Označené atributy a metody nejsou přístupné vně třídy.
  • public
    • Označené atributy a metody jsou volně přístupné z jakékoliv části programu (ve které je viditelná jejich třída).
  • protected
    • Částečně chráněné atributy a metody.
    • Může k nim přistupovat pouze vlastní třída a všichni její potomci.
  • published
    • Atributy a metody  jsou přístupné nejen za běhu, ale i při tvorbě aplikace.
    • Z hlediska aplikace je viditelná stejně jako položka public. 

 

Hierarchie objektu

  • TObject (abstraktní) – základní třída, která zajišťuje, že každý odvozený objekt je schopen říci své jméno, typ a zda je potomkem určité tříd.y
  • TPersistent (abstraktní, vychází z TObject) – zajišťuje, že objekty mají schopnost zapisovat a číst své vlastnosti.
  • TComponent (vychází z TPersistent) – má schopnost vlastnit jiné komponenty, obsahuje téměř všechny komponenty.
  • TControl (vychází z TComponent) – odtud dědí komponenty schopnost zobrazovat se a nechat se modifikovat a vlastnost udržování vlastní velikosti a souřadnic na formuláři.
  • Komponenty (tzn. tlačítko, memo, stringgrid,…) nejsou odtud odvozovány, ale z 2 podřízených tříd.
    • TWinControl (prvky typické pro aplikace Windows – tlačítka, pole, seznamy).
    • TGraficControl (grafické komponenty neumožňující vstup – Label, SpeedButton, Bevel).
  • Abstraktní třída = není určena pro vytváření objektů (první dvě třídy).

 

 

[Celkem: 0 Průměr: 0]

Napsat komentář