Dedinčan odporúča...

logoBlender je slobodná, otvorená sada pre tvorenie 3D obsahu, dostupná pre všetky hlavné operačné systémy, pod GNU General Public License.

Objektový model Lazarus

Kategória: Lazarus
Upravené: sobota, 25. júl 2009

Pre úspešné objektové programovanie v Lazarus je potrebné poznať a pochopiť objektový jeho model. Tento objektový model vychádza z objektového modelu Delphi, takže ak ho poznáte, máte vyhraté. Ak ho nepoznáte, čítajte ďalej.

Objektový model Lazarus je založený na objektovom modeli Free Pascalu, doplneného o knižnicu vizuálnych komponentov. Táto knižnica vizuálnych komponentov je nazvaná LCL (Lazarus Component Library) a jej kompletné zdrojové kódy nájdete v adresári lcl svojej inštalácie Lazarus.

Základné pojmy

Free Pascal je objektový programovací jazyk, čiže podporuje objektové porgramovanie. K základným pojmom objektovo orientovaného programovania patria pojmy ako objekt, trieda, dedičnosť, polymorfizmus a zapúzdrenie.

Deklarácia triedy
{ deklaracia triedy } type TNovaTrieda = class premenna1: Integer; premenna2: String; procedure Vypis; function Spoj; end;

Objekty a triedy

Trieda je vlastne akýsi druh deklarácie typu, ktorá popisuje členy, metódy a vlastnosti triedy. Triedu možno deklarovať v rozhraní aj v implementačnej časti jednotky, ale jej metódy musia byť definované v implementačnej časti. 

Objekt je dynamická inštancia triedy, ktorá obsahuje hodnoty všetkých členov deklarovaných v triede a v jej predkoch. Objekt je akousi obdobou premennej typu triedy. Pred použitím objektu musí byť deklarovaný a vytvorený. Za vytvorenie a uvoľnenie objektu je zodpovedný programátor.

Deklarácia a vytvorenie objektu
// deklarácia objektu var myTrieda: TNovaTrieda;   // vytvorenie objektu myTrieda := TNovaTrieda.Create;

Po tom, ako prestaneme objekt potrebovať, je potrebné ho z pamäte uvoľniť:

myTrieda.Destroy

takéto odstránenie objektu ho síce z pamäte uvoľní, ale teraz objekt myTrieda ukazuje na neplatný popisovač, takže mu treba priradiť hodnotu nil, alebo objekt uvoľňovať pomocou FreeAndNil:

FreeAndNil(myTrieda);

Zložky triedy a objektu

Vnútorná štruktúra triedy a objektu sa podobá na štruktúru typu záznam (record). Jednotlivé zložky objektu sú vlastne premenné, ktoré v sebe nesú informácie o danom objekte. Z hľadiska ich použitia možno tieto premenné rozdeliť na tri typy - členy, metódy a vlastnosti.

Členy

Člen objektu je doslova a do písmena premenná akéhoľvek typu, ale z pohľadu Objektovo orgientovaného programovania je použitie takých to premenných - členov nesystémové, odporujúce zásadám OOP. Využíva sa len pre súkromné premenné, ktoré nie sú prístupné vonkajšiemu svetu. Identifikátory takýchto súkromných členov je zvykom pomenovávať tak, že začínajú písmenom f. K hodnotám súkromných členov objektov sa potom pristupuje pomocou vlastností.

Metódy

Metódy sú silným nástrojom tried a udávajú čo objekt robí. V podstate sa jedná o premenné procedurálneho typu, čiže vlastne o procedúry a funkcie, ktoré vykonávajú s objektom a jeho stavom nejakú činnosť.

Vlastnosti

Vlastnosti sú špeciálny druh členov a ich úlohou je uchovávať hodnoty premenných a riadiť prístup k nim. Je možné definovať vlastnosti, ktoré sú len na čítanie alebo, naopak len na zapisovanie. Hodnotu vlastnosti môže vracať funkcia. Aj zápis do vlastnosti môže byť vykonávaný priamo alebo prostredníctvom metódy.

Copyright © 2008 - 2012 Sprievodca dedinčana... Niektoré práva vyhradené.
Ak nie je uvedené inak, obsah podlieha licencii „Creative Commons Uveďte autora – Zachovajte licenciu 3.0 Unported

Nenasledovať tento odkaz, inak budete maž zakázaný prístup na stránku!