Əgər bütün bunları birləşdirsək avtonom sinif alınır, bu sinif müxtəlif şərtlər
daxilində
işləyə bilər. Bu halda forma üzərində düymə qoymaq kifayətdir v o artıq tətbiqə hazırdır.
Proqramlarda sinfin xassələri, üsul və hadisələri necə hazırlanır?
Xassələr –bu sinfin vəziyyətinə təsir edən dəyişəndir. Məs. en, hündürlük.
Üsullar –bunlar sinfin edə bildikləri prosedur və funksiyalardır (hesablama). Məs. sinif
ekrana hansısa mətni çıxaran proseduraya malik ola bilər. Bu prosedura elə sinfə aid olan üsuldur.
Hadisələr –bunlar müəyyən hadisə baş verəndə çağırılan funksiyalar və prosedurlardır. Bu
prosedurlar həm sinfə aid ola bilər, həm də ondan xaricdə mövcud ola bilərlər. Siz proqramda
proseduru yaradırsınız və obyektə deyirsiniz ki, müəyyən hadisə baş verəndə bu proseduru çağırın
və o çağırılacaq. Məsələn, əgər hansısa xassı dəyişibsə, uyğun hadisə yarana bilər və uyğun
prosedura çağırıla bilər və siz hadisəyə reaksiya verə bilərsiniz. Əvvəlcə sinifdə hər-hansı bir hadisə
üçün prosedura olmaya bilər, varsa da o susmaya görə işləyir. Delphi mühitində prosedurlar ancaq
müəyyən formatda hadisədən asılı olaraq yazılır. Prosedurun formatı əvvəlcədən müəyyən olunur və
müxtəlif hallarda sinif onlara parametrlər göndərməli olacaq. Misal. İstifadəçi düyməni basdıqda
sinif uyğun hadisəni yaradır. Bu zaman sizin bu hadisəyə uyğun prosedur işləyəcək və sinif heç bir
əlavə parametr sizə ötürməyəcək. Lakin əgər hadisə siçanın düyməsinin yerdəyişməsi ilə bağlıdrsa,
onda sinif hadisə yaradacaq və avtomatik olaraq sizə kursorun yeni X,Y kordinatlarını ötürəcək.
buna görə də prosedura uyğun parametrlərlə elan olunmalıdır ki, onları sinifdən almaq mümkün
olsun.
İndi görək obyekt nədir. Obyekt sinfin bir nümunəsidir, nüsxəsidir. Sinif vasitəsi ilə biz
mahiyyəti tsvir edirik, hansıki onunla işləmək lazımdır. Məsələn, bu sinfin xassələrinin, üsul və
hadisələrinin təsviri ola bilər. Obyekt bir nümunədir. Düyməni forma üzərində yerləşdirmək siz sinfi
elan etməlisinz, xassə, üsul və hadisə yaratmalısınız. Onu artıq forma üzərində yerləşdiridikdə siz
bir nümunə yəni obyekt yaradırsınız. İkinci düyməni yerləşdirdikdə daha bir obyekt yaranır.
İndi isə xassələrin, üsul və hadisələrin işinə baxaq. Yenə də misal üçün sinif-düymə götürək.
belə sinif aşağıdakı minimal yığıma malik olamlıdır.
Xassə:
-sol mövqe (x);
-sağ mövqe (y);
-en;
-hündürlük;
-başlıq;
Üsul:
-düymə yaratmaq
-düyməni məhv etmək
-düyməni çəkmək
Hadisə
-düymə basılıb
-düymənin başlığı dəyişib
Obyekt vahid tam kimi işlləyir. Məsələn, siz düymənin aşlığını dəyişdiz. Obyekt “Düymənin
başlığı dəyişib” hadisəsini yaradır. Bu hadisəyə əsasən “düyməni çəkmək” üsulu çağırılır. Bu üsul
düyməni obyektin xassəsində göstərilən mövqedə çəkir, başlıq xassəsində göstərilən yeni mətni
düymə üzərinə çıxarır.
Hər bir sinifin mütləq iki üsulu var: “obyekt yaratmaq” və “obyekti silmək”. obyekt yaradan
zaman onun xassələrinin saxlanması üçün yaddaş ayrılır, onu silən zaman yaddaş boşaldılır. Obyekti
yaradan üsul konstruktor, məhv edən destruktor adlanır. Obyektin yaradılma prosesi inisializasiya
adlanır. İndi isə düymənin istifadəsinə baxaq.
1.
Düymənin “Düyməni yarat” üsulunun çağırılması ilə yaradılması
2.
Lazımi xassələrin dəyişdirilməsi
Bununla da düymə hazırdır. Obyekt –mürəkkəb tipdir. Bu o deməkdir ki, siz “obyekt”
tipli dəyişən
elan etmək olar (ədədlərin tipi göstərildiyi kimi) və bu obyektə dəyişən vasitəsilə müraciət edə
bilərsiniz. Beləliklə, biz sini tipli dəyişənlər elan edə bilərik.
Qeyd edək ki, obyektin yaradılması mütləqdir. İnisializasiya olmadan Delphi ancaq ədəd və ya sətir
kimi sadə dəyişənlərlə yaddaşda yer ayırır, çünki bu dəyişənlərin ölçüsü fiksə olunub.
Obyekt tipli mürəkkəb dəyişənlər mütləq İnisializasiya olmalıdır. Bu həmdə verilənlərin
yerləşdirilməsi ilə bağlıdır. Sadə dəyişənlər (stekin seqmentində) saxlanır, mürəkkəb dəyişənlər isə
(obyekt tipli) kompyuterin yaddaşında saxlanılır. Proqramın startı zamanı stek seqmenti avtamatik
İnisializasiya olunur. Buna görə də dəyişənlər artıq hazırlanmış yaddaşda stek seqmentində yerləşə
bilər. Obyekt yaradan zaman yaddaşda mütləq yaradılan obyekt üçün lazimi həcm ayrılmalıdır.
Obyekt lazım olmadıqda destruktoru çağıraraq yaddaşı azad etmək lazımdır. Sadə dəyişənləri
yaddaşdan silmək lazım deyil, çünki stek əməliyyat stemi tərəfindən avtamatik təmizlənir.
Siniflə işləmək çox rahatdır. O bir şablon kimi işləyir,onun əsasında isə obyekt tipli
dəyişənlər yaradılır. Məsələn, düymə tipli istənilən qədər obyekt yaratmaq olar. Obyektin məhv
edilməsi üçün Free metodu var. Obyekt bir. Free yazaraq onu məhv etmək olar. Delphi də sinifi
adlandırmaq üçün adın əvvəlində T yazılır. Müxtəlif dillərdə siniflər adları ilə fərqlənir.
Komponent modeli
Komponentlər – daha mükəmməl obyektdir. Kobud desək, komponentlər- elə obyektdir ki,
onlarla vizual işləmək olar və bunun üçün onlarda lazimi xassə və metodlar var.OYP-texsi
yaradılanda vizuallıq haqda heç danışılmırdı.Borland firması obyektə kitabxanası yaratdı. Objekt
Windows Library (owl-Windows-un obyektin kitabxanası) Borland özünün ilk Windows üçün üz
qabığı yaradanda OYP –nəz-sini yenidən işləmək lazım gəldi ki, obyektlərlə vizual mümkün
olsun.Delphini 6-cı versiyasının yaranmasına qədər ancaq bir komponent model-VCL(Visual
Component Library- vizual komponentlər kitabxanası) mövcud idi. 6-cı versiyada yeni CLX
kitabxanası (Borland Component Library for Cross Platform- krosplatformalı komponent
kitabxanası) yarandı-VCL –komponent kitabxanası ancaq Windows üçün hazırlanıb. O çox
universaldır,ancaq təkcə bu əməliyyat sistemində işləyir.