Informatika va programmalash


§3.21. Obyektga yo‘naltirilgan programmalash (OYP)



Download 1,53 Mb.
bet60/74
Sana13.07.2022
Hajmi1,53 Mb.
#786339
1   ...   56   57   58   59   60   61   62   63   ...   74
Bog'liq
Informatika va programmalash

§3.21. Obyektga yo‘naltirilgan programmalash (OYP).

Obyektlarni aniqlash


OYP asosida bitta struktura (tuzilishda) da ma’lumotlarni va ular ustida bajariladigan amallarni birlashtirish g‘oyasi yotadi.
OYP uchta asosiy tushunchaga tayanadi: inkapsulyatsiya, vorislik va polimorfizm.
Inkapsulatsiya – ma’lumotlar va shu ma’lumotlar bilan ishlaydigan protsedura va funksiyalar aralashmasini hosil qilishdir. Natijada ma’lumotlarning yangi turi–obyekt hosil bo‘ladi.
Vorislik–aniqlangan obyektlardan foydalangan holda ulardan kelib chiquvchi obyektlar iyerarxiyasini hosil qilish. Har bir «voris» o‘z «ajdodi» dagi ma’lumotlar tavsifi va ulrni qayta ishlovchi usullar (metodlar) ni o‘zlashtiradi.
Polimorfizm–vorislik iyerarxiyasidagi barcha obyektlarga bir vaqtda qo‘llanadigan, bir xil nomdagi amallarni (protsedura va funksiyalar) aniqlash imkoniyatidir. Bunda har bir obyekt bu amalni o‘z ustida bajarilishida o‘ziga xosliklarini buyurtma berishi mumkin.
OYP murakkab programmalarni yozishni soddalashtiradi va bu jarayonga ixchamlik xususiyatini beradi. OYP ning asosiy afzalligi shundaki programma qo‘llash sohasini o‘zgartirishga dastruni o‘zgartirmasdan, faqat obyektlar iyerarxiyasiga yangi o‘zgartirishlar (satxlar qo‘shish) orqali erishish mumkin.
Obyektlarni aniqlash. Obyekt-tarkibida o‘zaro bog‘langan har xil turdagi o‘zgaruvchilar (ma’lumotlar maydoni) va ularni qayta ishlaydigan protsedura va funksiyalardan (metodlar) tashkil topgan tuzilmadir. Obyekt turini aniqlash uchun “Object” maxsus so‘z aniqlangan va u quyidagicha e’lon qilinadi.
Type
Object
;
;
End;
bilan aniqlangan har bir o‘zgaruvchi shu tur nusxasi (namunasi) deyiladi.
Misol. Belgi va matn ma’lumotlar bilan ishlaydigan obyekt.

Type
ObjPos  Object


Line, Col : Word;
Procedure Init (Init_Line,Init_Col : Word);
Function GetLine: Word; {Line qiymatini qabul qilish}
Function GetCol: Word; {Col qiymatini qabul qilish}
Procedure Print;
End;
Procedure ObjPos.Init(Init_Line, Init_Col : Word);
Begin
Line : Init_Line;
Col : Init_Col;
End;
Function ObjPos.Get_Line : Word;
Begin
Get_Line : Line
End;
Function ObjPos.Get_Col : Word;
Begin
Get_Col : Col
End;

Procedure ObjPos.Print;


Begin
Write(#7);
End;
...
Var
ObjPos_Var : ObjPos; {obyekt nusxasini e’lon qilish}
...
Begin
...
ObjPos_Var.Init(5,15); {obyekt uchun boshlang‘ich qiymatlar berish}
...
End;
Obyektni e’lon qilishda metodlarning sarlavxalarigina yoziladi. Protsedura va funksiyalar e’loni programma e’lon qismining boshqa bo‘lagida bo‘lishi mumkin. Obyekt maydonlariga murojaat yozuv (Record) maydonlariga murojaat bilan bir xil («.» –nuqta va With operatori orqali). Lekin obyekt ma’lumotlariga quyidagicha murojaat ijobiy baholanmaydi.
ObjPos_Var.Line :5;
ObjPos_Var.Col :15;
Umuman, OYPda obyekt ma’lumotlariga murojaat faqat metodlar orqali amalga oshiriladi.
Obyektlarni e’lon qilishda ma’lum bir talablar bajarilishi kerak:
- obyekt turi asosiy daturning (modullarining) Type bo‘limida e’lon qilinishi mumkin. Qism-programmalarda lokal obyektlarni e’lon qilish mumkin emas;
- obyekt turini aniqlashda ma’lumotlar maydoni metodlar maydonidan oldin kelishi kerak;
- obyekt komponentasi sifatida fayl kelishi mumkin emas, va aksincha, fayl “obyekt” turidagi komponentaga ega bo‘lishi mumkin emas.
ObjPos obyekti orqali matn ekranidagi birorta belgi holati aniqlanadi. Endi belgini o‘zini aniqlovchi va uning ustida ma’lum bir ish bajaruvchi ObjSym obyektini aniqlaylik.

Uses Crt;


Type
ObjSym  Object
Line, Col : Word;
Sym : Char;
Procedure Init (Init_Line,Init_Col: Word; Init_Sym : Char);
Function GetLine: Word;
Function GetCol: Word;
Procedure Print;
End;
Procedure ObjSym.Init(Init_Line, Init_Col : Word);
Begin
Line : Init_Line;
Col :Init_Col;
Sym :Init_Sym;
End;
Function ObjSym.Get_Line : Word;
Begin
Get_Line :Line
End;
Function ObjSym.Get_Col : Word;
Begin
Get_Col :Col
End;
Procedure ObjSym.Print;
Begin
Crt.GotoXY(Col,Line);
Write(Sym);
End;

Agar bu obyektning aniqlanishiga e’tibor beradigan bo‘lsak, unda ObjPos obyektidagi ma’lumotlar va Get_line, Get_Col funksiyalaridan foydalanilgan. Sym va Print komponentalari yangidan qo‘shilgan va Init protsedurasi qaytadan yozilgan. Ko‘rinib turibdiki, ObjSym obyekti ObjPos obyekti xususiyatlarini vorislik qilib olgan. Umuman aytganda, OYPda vorislik–bu obyektlarning oddiy tuzilishdan murakkab tuzilishga tomon obyekt xususiyatlarini olib o‘tishi va rivojlanishidir.



Download 1,53 Mb.

Do'stlaringiz bilan baham:
1   ...   56   57   58   59   60   61   62   63   ...   74




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish