Object Pascal obyektga mo'ljallangan dasturlash tilidir. Obyektga mo'ljallangan tilda yig'ilgan imkoniyatlarga dasturlash tilining obyekt modellari deyiladi. Object Pascalda obyekt modellarini ishlatilishining amaliy natijasi komponentalarni yaratish va ularni qo'llab quvvatlashdir.
Ma'lumki, Delphi dasturlash yositasi Object Pascal obyektga yo'naltirilgan dasturlash tilini ishlatadi. Obyektga yo'naltirilgan dasturlash (OYD) - bu dastur ishlab chiqish usullari bo'lib, uning asosida real dunyo obyekti va uning holatini ifodaloychi ma'lum tuzilmaga ega obyekt tushunchasi yotadi. Object Pascalda obyekt modelining qo'llanilish natijasi bu komponentalarni qo'llash va yaratishdir. Object Pascal obyekt modelining asosi sinf va obyekt tushunchalaridir.
Sinf
Sinf - bu Object Pascalda maxsus turlar bo'lib, o'zida maydon, usullar va xossalarni mujassamlashtiradi.
Pascal sinfiy tili dasturchiga o'zining murakkab ma'lumotlar turlari yozuvlar (records) kiritishiga imkon beradi. Obyektli dasturlash konsepsiyasiga asoslangan Delphi tili sinflar kiritishiga imkon beradi.
Sinf murakkab tuzilma bo'lib, ma'lumotlar ta'riflaridan tashqari, protsedura va funksiyalar ta'riflarini o'z ichiga oladi.
Sodda sinf ta'rifiga misol:
TPerson = class
priVate
[pate: string[l5]; faddress: string[35];
rouic
procedure Show;
39
end;
Sinf ma'lumotlari maydonlar, protsedura va funksiyalar usullari deb ataladi.
Keltirilgan misolda TPerson - sinf nomi, fname va faddress maydonlar nomlari, show - usul nomi.
Maydon - bu sinfga birlashtirilgan ma'lumotlardir. Sinfga qarashli maydonlar oddiy yozuv maydoni kabi bo'lib, ularning farqi har xil turda bo'lishidir. Masalan:
Ture
T childClass=Class
Fone: Integer;
Ftwo: String;
Fthree: Tobject;
End;
Maydonlarga murojaat qilish sinf xossalari va usullari yordamida amalga oshiriladi. Maydonga murojaat qilish uchun oldin sinf nomi yozilib, keyin ajratuychi nuqta qo'yilib, maydon nomi yoziladi. Masalan:
Var
MyObject: TchildClass;
Begin
MyObject.Fone:=l6;
MyObject.Ftwo:='qator qiymati';
End;
Maydon nomi unga mos xossa nomining birinchi harfi «F» bo'lishi bilan farqlanadi.
Delphida qabul qilingan kelishuv bo'yicha maydon nomlari f (field maydon so'zidan) harfidan boshlanishi lozim.
Usuliar - sinfga birlashtirilgan protsedura va funksiyalarga usullar deyiladi. Masalan:
Ture
40
T childClass=Class
Fore: Integer;
Ftwo: String;
Fthree: Tobject;
Function FirstFunc(x:Real):Real;
Procedure SecondProc;
End;
Sinf usullari (sinf ta'rifiga kiritilgan protsedura va funksiyalar) sinf obyektlari ustida amal bajaradi. Usul bajarilishi uchun obyekt nomi va nuqtadan usul nomi ko'rsatilishi lozim. Masalan:
professor. Show;
MyObject. SecondProc;
u:= MuOBjest.FigstFups(Z.l4);
End;
Sinfda aniqlangan usullarni statistik, virtual (Virtual), dinamik yoki abstrakt turlarga bo'lish mumkin. Agar usul turi ko'rsatilmasa, zavtomatik ravishda statistik turni oladi. Masalan:
Ture
TBase=Class
Procedure MyJoy; Virtual;
End;
Tdescedant=Class(TBase)
Procedure MyJoy; Override;
End;
Var
FirstObject: TBase;
SecondObject: TDescedant;
Begin
FirstObject.MyJ ou;
SecondObject.MyJoy;
41
End;
Sinf davomchisida ishlatiladigan usul ichin Ovepide kalit so'zi ko'rsatilishi lozim.
Agar Tbase sinfida MyJoy usuli dinamik bo'lsa, Virtual so'zi Dinamik so'ziga almashtiriladi. Ularning asosiy farqi murojaat qilinganda Virtual usuli Vaqt jihatdan ancha effektiv bo'lsa, Dinamik usuli esa operativ xotiradan ratsional foydalanish imkonini beradi.