6. Vizuální a objektově orientované programování, základní pojmy a principy

Vizuální programování

Jedná se o způsob návrhu uživatelského rozhraní ve vývojovém prostředí (IDE), kde se objekty/komponenty rozmisťují myší na formuláři. Umožňuje vytváření rozhraní jinak než psaním textu programu.

Objektově orientované programování

Objektově orientované programování (OOP) představuje nový přístup k návrhu a tvorbě programů. Základním prvkem je objekt, který zahrnuje jak data (klasické datové struktury), tak programový kód sloužící k manipulaci s těmito daty (procedury a funkce operující s těmito daty). Má by výrazně usnadnit pozdější úpravy a údržbu. Delphi je založeno na principu objektově orientovaného programování.

Základní vlastnosti

  1. Zapouzdření (encapsulation)
    1. Propojení datových položek navzájem s kódem programu
  2. Dědičnost (inheritance)
    1. Nové objekty lze vytvářet jako potomky svých předků, od nichž přebírají (dědí) vlastnosti a pouze se přebírají vlastnosti nové
    1. Výhody:
      1. Sdílení kódu
      1. Snazší rozšíření programu o nové vlastnosti/funkce
  3. Polymorfizmus
    1. Schopnost přizpůsobit chování objektu konkrétní instanci tohoto objektu

Zálkadní pojmy OOP

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

Metody OOP

Metody jsou procedury a funkce patřící danému objektu, které určují chování tohoto objektu.

  1. Statické
    1. Jsou implicitním typem metod (jsou bez direktivy)
    1. Odpovídají volání klasických procedur nebo funkcí
    1. Překladač jim přiřadí prostor v paměti a vyřeší všechny jejich vazby již v době překladu
    1. Jsou rychlé, ale není možné jejich předefinování
  2. Virtuální
    1. Mohou být předefinovány
    1. Překladač pro ně vytváří VMT tabulku (slouží k nalezení adresy procedury až za běhu programu)
    1. Jsou náročnější na spotřebu paměti a jejich volání je poměrně rychlé
  3. Dynamické
    1. Jsou obdobné jako virtuální
    1. Vytváří se tabulka DMT (narozdíl od VMT obsahuje pouze ty metody, které jsou deklarovány v daném objektu)
    1. Jsou méně náročné na spotřebu paměti
    1. Vyvolání je pomalejší
    1. V běžných programech není velký praktický rozdíl mezi virtuálními a dynamickými metodami
  4. Metody zpráv
    1. Jsou specifickým typem určeným pro přímou obsluhu zpráv Windows
    1. Jejich tvorba je náročná na znalosti API (programátorské rozhraní) Windows

Třídy OOP

Obsahuje určitá interní data a určité metody ve formě procedur nebo funkcí. Charakterizuje 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 Delphi se pro definici třídy používá klíčové slovo class

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

Každý formulář má korespondující unit (zde jsou automaticky  vytvářeny sekce public a private).
4 modifikátory:

  • Private
    • Deklarace v sekci jsou přístupné jen v rámci dané unit
  • Public
    • Deklarace (jak metod tak proměnných) v sekci jsou přístupné odkudkoli z programu (i z jiných units)
  • Protected
    • Používá se k oznaření částečně chráněné atributy a metody
    • Může k nim přistupovat pouze vlastní třída a všichni její potomci
  • Published
    • Využívá se především při psaní komponent

Hiearchie objektů v Delphi

  • 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řídy
  • 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)

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Přesunout se na začátek