type
TName = string[15];
TAddress = string[35];
TPerson = class // sinf
private
FName: TName; // Name xususiyatining qiymati
FAddress: TAddress; // Address xususiyatining qiymati
Constructor Create(Name:Tname);
Procedure Show;
Function GetName: TName;
Function GetAddress: TAddress;
Procedure SetAddress(NewAddress:TAddress);
public
Property Name: Tname // Name xususiyati
read GetName; // faqat o‘qish uchun
Property Address: TAddress // Address xususiyati
read GetAddress // o‘qish va
write SetAddress; // yozish uchun
end;
Dasturda xususiyat qiymatini o‘rnatish uchun ob‘yekt xususiyat qiymatini o‘rnatish
uslubini qo‘llovchi buyruqlarni yozilmaydi, balki xususiyat qiymatini oddiy o‘zlashtirish
buyrug‘ini yozish kifoya. Masalan, student ob‘yektining Address xususiyatiga qiymat berish
uchun quyidagi buyruqni yozish yetarli:
student.Address := 'Namangan sh, Do`stlik ko`cha, 11-uy';
Kompilyator yuqoridagi xususiyat qiymatini o‘zlashtirish buyrug‘ini uslubni chaqirish
buyrug‘iga o‘zgartiradi:
student.SetAddress('Namangan sh, Do`stlik ko`cha, 11-uy');
Dasturda xususiyatni tashqi qo‘llash ob‘yekt maydonlaridan foydalanishdan hech qanday
farq qilmaydi. Biroq, xususiyat va ob‘yekt maydoni o‘rtasida jiddiy farq mavjud: xususiyat
qiymatlarini yuklash va o‘qish vaqtida bir qator ishlarni bajaruvchi protsedura avtomatik tarzda
chaqiriadi.
Dasturda xususiyat uslublariga bir qator qo‘shimcha vazifalarni yuklash mumkin.
Masalan, uslub yordamida yuklangan xususiyat qiymatining to‘g‘riligini tekshirish, xususiyat
bilan mantiqiy bog‘langan boshqa maydonlarga qiymat o‘rnatish, yordamchi protseduralarni
chaqilish mumkin.
Ob‘yekt ma‘lumotlarini xususiyat sifatida rasmiylashtirish ob‘yekt xususiyatini saqlovchi
maydonlarga murojaat etishni cheklash imkonini yaratadi: masalan, faqat o‘qish uchun ruhsat
berish mumkin. Dastur buyruqlari hususiyat qiymatlarini o‘zgartira olmasligi uchun hususiyat
berilishida faqat o‘qish uslubining nominigina berish kerak. Faqat o‘qish uchun mo‘ljallangan
hususiyat qiymatini o‘zgartirishga urinish kompilyatsiya vaqtida xatolik sodir bo‘ladi. Yuqorida
keltirilgan Tperson sinfining Name hususiyati faqat o‘qish uchun, Address hususiyati esa
o‘qish va yozish uchun mo‘ljallangan.
Yozishdan himoyalangan hususiyat qiymatini ob‘yektni yaratish vaqtida o‘rnatish
mumkin. Quyida TPerson sinfining ob‘yektini yaratish va uning hususiyatlariga murojaat etishni
ta‘minlovchi TPerson sinfining uslublari keltirilgan.
// TPerson ob‘yektining kostruktori
Do'stlaringiz bilan baham: |