11.2. Ob’yektlar
Ob’yektlar klasslarning vakili sifatida dasturda var bo`limida e`lon qilinadi. Masalan:
Var student: TPerson; professor: TPerson;
Eslatma: Delphi da ob’yekt – bu dinamik struktura. Ob’yekt- o`zgaruvchi o`zida ma`lumot emas, balki ma`lumotlarga murojaatni saqlaydi. Shuning uchun dasturchi bunday ma`lumotlar uchun xotiradan joy ajratishi shart.
Xotiradan joy ajratish klassning maxsus metodi Create konstruktori yordamida amalga oshiriladi. Konstruktorning roli va hulqini ko’rsatish uchun klasslarni tavsiflashda procedure o`rniga constructor so`zidan foydalaniladi. Quyidagi misolda tarkibiga konstruktor kiritilgan Tperson klassi e`lon qilinmoqda:
TPerson class private
fname: string [ 15 ];
faddress: string[35];
constructor Create; konstruktor
public
procedure show; metol
end;
Ob’yekt ma`lumotlari uchun xotiradan joy ajratish amali metod- konstruktorni qo`llash natijasida olingan qiymatni ob’yekt (klass) tipiga o`zlashtirish yo`li bilan amalga oshiriladi. Masalan,
professor : TPerson.Create;
ko`rsatmasi bajarilganidan so`ng, professor ob’yekti ma`lumotlari uchun xotiradan yetarli joy ajratiladi.
Konstruktor xotiradan joy ajratishdan tashqari, ob’yekt maydonlariga boshlang’ich qiymatlar berish vazifasini ham bajaradi. Quyidagi misolda konstruktor Tperson ob’yektiga nisbatan qo`llanmoqda:
constructor TPerson.Create;
begin
fname : '';
faddress : '';
end;
Konstruktorni qo`llash bir oz boshqacharoq. Birinchidan, uning tanasida odatdagi dinamik xotiradan joy ajratuvchi New protsedurasi yo`q (xotiradan joy ajratish bo`yicha hamma ishlarni kompilyatorning o`zi bajaradi). Ikkinchidan, dastur konstruktorga metod-funksiya kabi murojaat qilsada, konstruktor rasman qiymatlarni qaytarmaydi.
Ob’yektdan foydalanish mumkin bo`lishi uchun avval uni e`lon, so`ngra initsializatsiya qilinadi. Shundan keyin, ob’yekt maydonlari qiymatlarini aniqlash mumkin. Ob’yekt maydoniga murojaat qilish uchun ob’yekt va maydon nomlari nuqta bilan ajratib yoziladi. Ob’yekt ko`rsatkich bo`lgani uchun ^ belgisi qo`yilmaydi. Masalan, professor ob’yektining fname maydoniga murojaat qilishda odatdagi professor^.fname yozuvi o`rniga professor.fname deb yoziladi.
Ob’yekt maydonlari band qilgan joylarni bo`shatish masalasi Free metod-destruktori yordamida hal qilinadi. Masalan, professor ob’yektining xotiradan egallagan joylari
professor.Free;
ko`rinishidagi ko`rsatma yordamida bo`shatiladi.
11.3. Metodlar
Metodlar klass ob’yektlari ustida belgilangan amallarni bajaradi. Buning uchun ob’yekt va metod nomlari bir-biridan nuqta bilan ajratib ko`rsatiladi. Masalan, professor. Show; ko`rsatmasi show metodini professor ob’yektiga nisbatan qo`llaydi.
Klass metodlari oddiy protsedura va funksiyalar kabi aniqlanadi. Farqi shuki, uning nomi ikki qismdan iborat bo`ladi: metod tegishli bo`lgan ob’yekt hamda metod nomlari. Ular bir-biridan nuqta bilan ajratiladi. Quyida TPerson klassining show metodini aniqlashga namuna keltirilgan:
TPerson klassining show metodi
procedure TPerson.Show;
begin
ShowMessage( 'Imya:' fname #13 'Adres:' faddress );
end;
Eslatma: Ob’yektning maydonlariga murojaat qilish uchun metod buyruqlarida ob’yekt nomini ko`rsatilmaydi.
Do'stlaringiz bilan baham: |