Toshkent axborot texnologiyalari universiteti urganch filiali kompyuter injiniringi fakult



Yüklə 84,71 Kb.
Pdf görüntüsü
səhifə1/5
tarix19.12.2023
ölçüsü84,71 Kb.
#185161
  1   2   3   4   5
13-14-15



MUHAMMAD AL-XORAZMIY NOMIDAGI 
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI 
URGANCH FILIALI 
KOMPYUTER INJINIRINGI FAKULTЕTI 
962-21 guruh talabasi Vaisova Nodiraning 
Dasturlash fanidan yozgan 
Tоpshirdi:
_______________________________ 
Qabul qildi: 
_______________________________ 
Urganch – 2022 


Bazaviy sinf a'zolariga murojaatni boshqarish. 
Sinf – bu maxsus turlar bo‗lib, o‗zida maydon, usullar va xossalarni mujassamlashtiradi. 
Sinf murakkab struktura bo‗lib, ma‘lumotlar ta‘riflaridan tashqari, protsedura va funksiyalar 
ta‘riflarini o‗z ichiga oladi. Sodda sinf ta‘rifiga misol: TPerson = class private fname: string[15]; 
faddress: string[35]; public procedure Show; end; Sinf ma‘lumotlari maydonlar, protsedura va 
funksiya 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, Type TchildClass=Class Fore: 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 ajratuvchi nuqta qo‗yilib maydon nomi 
yoziladi. Masalan: Var MyObject: TchildClass; 
Begin MyObject.Fone:=16; MyObject.Ftwo:=‗qator qiymati‘; End; Maydon nomi unga 
mos xossa nomining birinchi harfi ―F‖ bo‗lishi bilan farqlanadi. Delphi da qabul qilingan 
kelishuv bo‗yicha maydonlar nomlari f (field — maydon so‗zidan) harfidan boshlanishi lozim. 
5.2. Usullar Sinfga birlashtirilgan protsedura va funksiyalarga usullar deyiladi. Masalan: Type 
TchildClass=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 ob‘yektlari ustida amal bajaradi. Usul bajarilishi uchun ob‘yekt 
nomi va nuqtadan so‗ng usul nomi ko‗rsatilishi lozim. Masalan: professor. Show; Sinf usuli 
ta‘riflanganda sinf nomi va usul nomi ko‗rsatiladi. Masalan: // TPerson sinfi Show usuli 
procedure TPerson.Show; begin Write ( ‗Nom:‘ + fname + #13+ ‗Adres:‘ + faddress ); end; 
Usul tanasida ob‘yekt maydonlariga murojaat qilinganda ob‘yekt nomi korsatilmaydi. 
Usulga murojaat qilish dasturda uning nomini ko‗rsatish bilan bajariladi. Masalan:
Var
MyObject: TchildClass;
y: Real; Begin
. . . . . . . . . . . . . . .
MyObject. SecondProc; 
y:=MyObject.FirstFunc(3.14);
End;
Usullar chaqirilganda chaqirgan ob‘yektga ilova uzatiladi. Bu ilovaga usul ichida self 
so‗zi orqali murojaat qilish mumkin. procedure TPerson.Tproc(Fore:Integer); begin 
self.Fore:=Fore; end; 5.3. Ob’yekt Ob‘yekt – bu sinfning real nusxasi bo‗lib, ma‘lumotlar va 
funksiyalardan tashkil topadi. U dasturning var bo‗limida e‘lon qilinadi. Masalan: var student: 
TPerson; professor: TPerson; Ob‘yekt – bu dinamik strukturadir. O‗zgaruvchi-ob‘yekt 
ma‘lumotlarni emas, ob‘yekt ma‘lumotlariga ilovani o‗z ichiga oladi. Shuning uchun dasturchi 
bu ma‘lumotlarga xotiradan joy ajratishni ko‗zda tutishi lozim. Joy ajratish sinf maxsus usuli – 
konstruktor yordamida amalga oshiriladi. Bu usul odatda Create (yaratish) nomiga ega bo‗ladi. 
Sinf ta‘rifida konstruktor uchun procedure so‗zi o‗rniga constructor so‗zi ishlatiladi. Quyida 
tarkibida konstruktor qatnashgan TPerson sinfi ta‘rifi keltirilgan: 
TPerson = class private 


 fname: string [ 15 ];
faddress: string[35];
constructor Create; // konstruktor
public 
procedure show; // usul
end; 
Xotiradan joy ajratish konstruktor sinfga qo‗llash natijasini qiymat sifatida berish orqali 
amalga oshiriladi. Misol uchun professor := TPerson.Create; instruksiyasi bajarilishi natijasida 
professor ob‘yektiga xotiradan joy ajratiladi. Xotiradan joy ajratishdan tashqari konstruktor, 
odatda ob‘yekt maydonlariga boshlang‗ich qiymatlar berish ya‘ni ob‘yekt initsializatsiyasi 
vazifasini ham bajaradi. Quyida TPerson ob‘yekti uchun konstruktor misoli keltirilgan: 
constructor TPerson.Create;
begin fname := ‗‗;
faddress := ‗‗;
end; 
Ob‘yekt maydoniga murojaat qilish uchun ob‘yekt nomi va nuqtadan so‗ng maydon 
nomi ko‗rsatiladi. Masalan: professor.fname Ob‘yektga ajratilgan xotira qismini bo‗shatish 
uchun maxsus usul destruktor free ishlatiladi. Masalan: professor.free;. Inkapsulyatsiya va 
ob’yekt xossalari Inkapsulyatsiya deyilganda ob‘yekt maydonlariga to‗g‗ridan to‗g‗ri emas, 
faqat sinf usullari orqali murojaat qilishga aytiladi. Ob‘yekt maydonlariga murojaat ob‘yekt 
xossalari orqali amalga oshiriladi. Ob‘yekt xossasiga murojaat qilish uchun ikki usuldan 
foydalaniladi. O‗qish uchun ishlatiladigan funksiya nomi 
Get
bo’lib, 
unga mos xossa nomi qo‗shilib yoziladi. Yozish uchun ishlatiladigan usul bitta parametrli Set 
nomi qism dastur bo‗lib, uning nomiga ham mos xossa nomi qo‗shilib yoziladi. O‗qish va 
yozish usullari va uning parametri ham bir xil xossaga ega bo‗lishi lozim. Xossani e‘lon qilish 
uchun Property, Read va Write so‗zlari ishlatiladi. Read va Write usul nomlari bo‗lib, ular mos 
ravishda o‗qish va yozish uchun mo‗ljallangan. Quyida ikkita Name va Address xossalarini o‗z 
ichiga oluvchi TPerson sinfi ta‘rifi keltirilgan:
type 
TName = string[15];
TAddress = string[35];
TPerson = class private
FName: TName; 
FAddress: TAddress;
Constructor Create(Name:Tname);
Procedure Show;
Function GetName: TName;
Function GetAddress: TAddress;
Procedure SetAddress(NewAddress:TAddress); public
Property Name: Tname read GetName;
Property Address: TAddress 
read GetAddress
write SetAddress;
end; 


Dasturda student ob‘yektining, Address xossasiga qiymat berishini quyidagicha yozish mumkin: 
student.Address := ‗Toshkent, Yunusobod 21, kv.3‘; Tashqi tomondan dasturda xossalardan 
foydalanish ob‘yekt maydonlaridan foydalanishdan farq qilmaydi. Lekin xossalar va ob‘yekt 
xossalari orasida prinsipial farq bor: xossaga qiymat berish yoki xossa qiymatini o‗qishda 
avtomatik ravishda biror vazifa bajaruvchi protsedura chaqiriladi. Dasturda xossa usullariga 
qo‗shimcha vazifalar yuklash mumkin. Masalan usullar yordamida xossaga berilayotgan 
qiymatlar to‗g‗riligini tekshirish, yordamchi protseduralarni chaqirish. Ob‘yekt maydonlarini 
xossa sifatida ta‘riflash maydonlarga murojaatni cheklashga imkon beradi: masalan, faqat 
o‗qishga ruxsat berish mumkin. Buning uchun xossa ta‘rifida faqat o‗qish usulini ko‗rsatish 
kerak. Yuqorida keltirilgan TPerson sinfi ta‘rifida Name xossasini faqat o‗qish mumkin, 
Address — xossasi esa o‗qish va yozish uchun mo‗ljallangan. Yozuvdan himoyalangan xossa 
qiymatini ob‘yekt initsializatsiyasida o‗rnatish mumkin. Quyida Tperson sinfi usullari 
keltirilgan. Bu usullar TPerson sinfi ob‘yektini yaratish va xossalariga murojaatni ta‘minlaydi.
Constructor TPerson.Create(Name:TName); 
begin 
FName:=Name; 
end; 
Function TPerson.GetName; 
begin 
Result:=FName;
end; 
function TPerson.GetAddress;
begin 
Result:=FAddress; end;
Procedure TPerson.SetAddress(NewAddress:TAddress);
begin 
if FAddress =’ ‘
then FAddress := NewAddress;
end; 
Sinf ob‘yektini yaratish va xossa qiymatini o‗rnatishga misol: 
student := TPerson.Create(‗Tolipov‘); 
student.Address := ‗‗Toshkent, Yunusobod 21, kv.3‘; 



Yüklə 84,71 Kb.

Dostları ilə paylaş:
  1   2   3   4   5




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin