Linux operatsion tizimida OMP texnologiyasining klassik texnologiyalardan olgan usul va mexanizmlari
![Linux operatsion tizimida OMP texnologiyasining klassik texnologiyalardan olgan
usul va mexanizmlari mavzusida tayyorlagan
Reja:
1. Obyekt va uning xossalari.
2. OMPning asosiy prinsiplari.
3. Texnologiyaning qulayliklari.
4 . Texnologiyaning qo’llash bosqichlari.](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_1.png)
![Obyektga yo’naltirilgan programmalash (OYP) zamonaviy texnologiyalardan
bo’lib uning negizida obyekt (object) tushunchasi yotadi. Shuning uchun bu
texnologiyani obyektga mo’ljallangan yoki ob’ektli texnologiya ham deydilar. Obyekt
bizga programmalash kursining kirish qismidan ma’lum bo’lgan yozuv, aralash tip
(record) tipiga o’xshashdir. Obyektga yozuvdan farqliroq nafaqat ma’lumotlar, balki
ularni qayta ishlash uchun kerakli bo’lgan algoritmlar (qism programmalar) saqlanadi.
Ta’rif: Obyekt bu shunday strukturadirki uning komponentalarini turli tipli o’zaro
bog’liq ma’lumotlar va bu ma’lumotlarni ishlatadigan qismprogrammalar (protsedura
va funksiyalar) tashkil qiladi.
Obyektni ma’lumotlarning yangi tipi ham deyishimiz mumkin.Shu asosida
Cumula 67 tilidan boshlab yangi OYP texnologiyasi paydo bo’ldi va keyinchalik
Pascal va C++ tillarini rivojlantirdi.Texnologiyasi strukturaga va modulli
programmalash texnologiyalariga suyanadi va ularni yanada kengaytiradi.
Obyekt tushunchasiga misol qilib “Kompyuter”ni ham olishimiz
mumkin.Kompyuter alohida qismlardan ( protsessor, monitor, klaviatura va
hokazokar) iborat bo’lib,xotira hajmi,monitor kuchlanishi,tezkorlik va hokazo
parametrlar bilan xarakterlanadi. Bular kompyuter haqidagi ma’limotlarni bir qismini
tashkil qiladi. Bundan tashqari kompyuter turli amallarni bajaradi yoki uning ustida
har xil amallar bajariladi, masalan, disklarni joylashtirish, ekranda figurani chiqarish,
hisoblashni bajarish va hokazolarni bajara olamiz. Ya’ni “kompyuter” obyekt
parametrlar va ular ustida bajariladigan amallar majmuassi hisoblanadi. Obyekt o’ziga
xos xususiyatlarni birlashtiradi va ularni qayta ishlaydi.
OMD texnologiyasi katta programmaviy ma’lumotlarni ishlab chiqishda quyidagi
qulayliklar beradi:](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_2.png)
![Sohaning oddiy tabiiy tushunchalarini ishlatish va yangi tushunchalarni hosil
qilish ;
Programma hajmini xossa va amallarni ixchamlashtirish asosida
kamaytirish,xotirani dinamik obyektlarni qo’llash natijasida tejash;
Obyektlar kutubxonasini yaratish, programmani o’zgartirishni osonlashtirish;
Qism programmalarni turli to’plamli formal parametrlari bilan qo’llash;
Obyekt haqida to’liq ma’lumotni bir joyda birlashtirish va programma taxlashni
soddalashtirish;
Aytishimiz kerakki OYP texnologiyasi kamchiliklarga ham ega va qator
holatlarda o’z samaradorligini ko’rsata olmaydi. Masalan, agar uning virtual
metodlari qo’llanilsa programma tezkorligi pasayishi mumkin. Sodda va kichik
hajmga ega bo’lgan programmalarda bu texnologiyani ishlatish maqsadga muvofiq
emasdir. OMPni ishlatish programmani soddalashtirmaydi ammo programmani
yaratish texnologiyasini osonlashtiradi.
Bizga ma’lum bo’lgan TPas yoki BP muhitlarda OMP ga asoslangan Turbo
Vision kutubxona (qism programmalar majmua) si bo’lib ishlatiladi va muloqotli
(interaktiv) programmalar to’plamini loyihalash uchun katta qulayliklar yaratib
beradi.
OYP texnologiyasi asosiy prinsiplari (xususiyatlari).
Texnologiyaning negizida uchta bosh tushunchalar yotadi.
Inkapsulyatsiya (Qobiqlash). Qobiqlash ma’lumotlar to’plamini va bu to’plamni
qayta ishlashga mo’ljallangan algoritmlarni (qism programmalarni ya’ni protsedura](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_3.png)
![va funksiyalarni) birlashtiri sh hisoblanadi . Natijada yangi tip obyekt (object) paydo
bo’ladi. OMP muhitida ma’lumotlarni obyekt maydonlari va qism programmalarni
obyekt metodlari deymiz.
Qulayliklari:
a) Obyekt tashqi muhitdan mustaqil bo’ladi.
b) Ma’lumotlar va algoritmlari modintifatsiya qilish (o’zgartirish) osonlashadi.
d) Obyektlar kutubxonasini yaratishga qulay sharoitlar paydo bo’ladi.
Vorislik (Meroslik, irsiylik – meros olish). Tayyor obyektlar yordamida yangi
obyektlar ketma - ketligini yaratish hisoblanadi. Eski(bosh) obyektlarga ma’lumotlar
tasvirlanishi va ularni qayta ishlash metodlari yangi obyektlarga “merosiy” (otadan -
o’g’ilga - nevaraga) o’tishidir. Ya’ni bosh obyektdagi maydonlar va metodlar
avtomatik ravshda “otadan” “o’g’ilga” o’tadi, yangilari bilan kengaytiriladi yoki
o’zgartiriladi.
Qulayliklar:
a) Obyekt xususiyatlarini o’zgartirishni osonlashtiradi.
b) Masala qo’yilishida bosh (ota) ob’ektda mujassamlangan
xususiyatlar keyinchalik yangi (o’g’il) ob’ektlarning xususiyatlari bilan
kengaytiriladi.
c) Murakkab programmani qadam-qadam ishlab chiqish sharoiti
paydo bo’ladi.](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_4.png)
![Polimorfizm (umumiylik, o’rindoshlik). Polimorfizm deb bitta bosh (ota)
obyektdan paydo bo’lgan qarindosh obyektlarning o’xshash muammolarni turlicha
(o’ziga xos) usullar yordamida yechishga aytiladi. Boshqacha qilib aytganda,
tasvirlangan qismp rogrammalar obyektlar ketma - ketligida ta’sir kuchiga ega bo’lib,
har bir keying pog’onada (bosqichda) turgan obyekt o’zi ustida bu qism programma
o’z ichida qo’llanilishi ham mumkin.
Qulayliklari:
a) Bosh ob’ektdagi metodlarda mavjud bo’lmagan xususiyatlarni
key- ingi pog’onadagi ob’ektlarda hosil qilish.
b) Yangi ob’ektga bosh ob’ektdagi metod nomi bilan metodni e’lon
qi- lib unda yangi xossalarni kiritish.
c) Ikkita bir xil metod va turli xususiyatlarni loyihalash.
d) Virtuallashtirish (виртуализация), ya’ni nafaqat yangi (o’g’il)
ob’ekt metodini bosh (ota) ob’ekt metodlariga murojaat qilinishini, balki
teska risi ham, ya’ni bosh ob’ekt metodlarini yangi ob’ekt metodlariga
murojaat qilinishini tashkil qilish.
Texnologiya asoslarini qo’llash va talablarini qondirish maqsadida quyida
berilganmasalaning yechimining ketma-ketligini tahlil qilamiz.
Masala: Ekranda turli grafik obrazlarni (nuqta, aylana, kvadrat, chiziq) hosil qilib
ularni harakatini tashkil qiluvchi programma tuzilsin: Ekran holatini quyidagi
chizmada ko’rsatishimiz mumkin.](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_5.png)
![Programmada obrazlarni ko’chirishni namoyish etish uchun kursorni
boshqaruvchi klavishalar: Home, End, PgUp, PgDn - dioganal bo’yicha harakat
uchun, Tab - ko’chirish kerak bo’lgan obrazni tanlab olish uchun va Esc -
programmadan chiqish uchun ishlatiladi. Obe’ktlarni tashkil qilish. Bizga ma’lum
programmalash muhitlarida obyektlarni yaratish uchun uchta maxsus so’z: object,
constructor, destructor va uchta standart direktivalar: private, public va virtual so’zlari
juda keng ishlatiladi.
Object - obyektni tasvirlash uchun qo’llanib tiplarni aniqlash bo’limida
joylashtiriladi.
Type MyObject = object
{ob’ekt maydonlari}
{ob’ekt metodlari} End;
Agar ob’ekt boshqa bosh (ota) ob’ektdan hosil qilingan bo’lsa, u holda bosh
ob’ekt nomi object so’zidan keyin qavslarda ko’rsatiladi.
Type MysecondObject = Object(MyfirstObject)
{ ob’ekt maydonlari}
{ob’ekt metodlari} End;
Obyektlarni tasvirlashda (e’lon qilishda) quyidagilarga rioya qilish kerak.
Ixtiyoriy obyekt xohlagancha avlodga (farzandlarga) va faqat bitta bosh (ota)
obyektga ega bo’lishi mumkin;](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_6.png)
![Obyekt tipi faqat asosiy programmaning turlarini tasvirlash bo’limida (type
bo’limida) yoki modullar bo’limlarida e’lon qilinishlari kerak. Qism programmalarda
(protsedura va funksiyalarda) obyektlarni tasvirlash mumkin emas;
Obyekt tipini tasvirlashda ma’lumotlar maydonlari metodlarni tasvirlashdan oldin
bo’lishi kerak;
Obyekt komponentalari fayl bo’lishi mumkin emas va o’z navbatida fayllar “
obyekt ” tipidagi komponentalarni saqlamaydi.
Masalani yechishga o’tsak, bosh (ota) ob’ektini TGraphObject bilan bel- gilaymiz.
Qobiqlash asosida boshqa ob’ektlar (o’g’illar) uchun umumiy bo’ladigan maydon va
metodlarni kiritamiz.
Type TgraphObj = object
Private {ob’ekt maydonlari foydalanuvchidan yashirilinadi} x, y: integer; {nuqta
koordinatasi}
color: word;{figura rangi}
public {ob’ekt metodlari foydalanuvchi uchun ochiq}
constructor Init(ax, ay: integer; aColor: word); {ob’ekt ekzemplyarini (nusxasini)
hosil qiladi}
procedure Draw(aColor: word); virtual; {ob’ektni berilgan aColor rangi bilan
chizadi}
procedure Show; {color rangi bilan ob’ektni ko’rsatadi} procedure Hide; {fon
rangi bilan ob’ektni yashiradi}
procedure MoveTo (dx, dy: integer); {ob’ektni koordinatasi x+dx,
y+dy bo’lgan nuqtaga ko’chiradi }
end;](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_7.png)
![Keyinchalik TgraphObj – dan “o’g’il” ob’ektlarni hosil qilib nuqta, chiziq,
to’rtburchak va aylananing o’ziga xos xususiyatlarini ko’rsatuvchi xarakteristikala-
rini tashkil qilamiz. Bu grafik obrazlarning har biri ekrandagi o’rni (x va y
maydonlari) va rangi bilan (colour maydoni) xarakterlanadi. Ular Draw metodi
yordamida ekranda akslantiriladi, Show metodi bilan “o’zini ko’rsatadi”, Hide metodi
bilan “yashirinadi” va MoveTo yordamida ekran bo’ylab harakat qiladi.
Private direktivasi yashirilgan (yopilgan ) maydon va metodlar seksiyasini ochadi.
Agar shu seksiyada programmalovchi TPU- modulidan foydalangan bo’lsa u holda
foydalangan ob’ektlarning elementlari “ko’rmas” shakliga o’tadi. Yuqoridagi
tasvirlashda reper (nishonli) nuqta hisoblanadigan (x, y) ixtiyoriy tarz- da
o’zgartirilishi mumkin emas. X va Y qiymatlarini o’zgartirish uchun ob’ekt tar-
kibiga kiradigan Init va MoveTo metodlari ishlatiladi.
Yashirilgan ( ko’rmas ) maydon va metodlar ob’ekt tasvirlangan programmaviy
birliklarda (programma yoki modul) ochiq deb qabul qilinadi. Agar biz keyinchalik
GraphObj modulini yaratsak, u holda yashirilgan elementlar faqat shu modulda
“ochiq” va bu modulni ishlatuvchi asosiy programmada “yopiq” deb hisoblanadi.
Aytib o’tishimiz kerakki, oddiy programmalarda “yashiriladigan” elementlarni
tashkil qilish shart emas. Shuning uchun yuqoridagi tasvirlashda Private…, public
mexanizmlarni ishlatmasak quyidagi fragmentni hosil qilamiz.
Type TGraphObj=object
x, y: integer; color: word;
Constructor Init(ax, ay: integer; acolor: word); Procedure Draw(acolor: word):
virtual; Procedure Show;
Procedure Hide;
Procedure MoveTo(dx, dy:integer); End;](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_8.png)
![Umuman olganda, maydonlar oddiy o’zgaruvchi kabi tasvirlanadi, ixtiyoriy
ma’lumotlar strukturasi va o’z navbatida boshqa ob’ekt ham bo’lishi mumkin.
Metodlar esa oddiy protsedura va funksiyalarni tasvirlashga o’xshaydi.
Obyekt - bu ma’lumotlar tipidir. Shuning uchun uni qandaydir “shablon” (qolib)
deb qabul qilib uning ekzimplyarlarini (nusxalarini) konstruktor yordamida
aniqlashimiz mumkin hisoblanadi. Bunday nusxalar xohlagancha bo’lishi mumkin.
Constructor so’zi procedure so’zining o’rnida ishlatiladi. Obyektda virtual metodlar
bo’lmasa, u holda konstruktor ishlatilmaydi. Aksincha agar bitta metod virtual
tasvirlangan bo’lsa, u holda hech bo’lmaganda bitta konstruktor ham tasvirlanadi.
Konstruktorga murojaat qilish ixtiyoriy virtual metodga murojaat qilishdan oldin
kelishi kerak.
Kostruktorning asosiy vazifasi ob’ekt maydonlarini aniq qiymatlar bilan
to’ldirishdir. Bir obyektning har xil nusxalari (ekzimplyarlari) faqat qiymatlari bilan,
ya’ni maydonlar qiymatlari bilan farq qiladi. Keltirilgan misolda Init konstruktori
nusxani to’liq aniqlash uchun ma’lumotlarni ax, ay, acolor parametrlari orqali qabul
qiladi.
Draw protsedurasi TGraphObj ob’ektining avlodlarida turlicha ishlatilib har xil
figuralarni ( nuqta- PutPixel, chiziq- Line va hokazo ) tasvirlash (chiqarish) uchun
qo’llaniladi.
Obyektning hamma xususiyatlarini tasvirlash uchun ob’ekt metodlarini ochib
berish, ya’ni protsedura va funksiyalarni tasvirlash kerak. Tasvirlash (protsedura va
funksiya) ob’ektni tasvirlashdan keyin joylashtirilishi talab qilinadi. Bu qoidalarni
hisobga olib tasvirlashni davom ettiramiz va quyidagilarni hosil qilamiz.
Type](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_9.png)
![TGraphObj=object
End;
Constructor TGraphObj.Init;
Begin x:=ax; y:=ay; color:=acolor; end; Procedure TGraphObj.Draw;
Begin;
{bu protsedura “o’g’il” ob’ektlarda ishlatiladi} End;
Procedure TGraphObj.Show; Begin Draw(Color) end;
Procedure TGraphObj.Hide;
Begin Draw(GetBKColor) end; Procedure TGraphObj.MoveTo;
Begin Hide; x:=x+dx; y:=y+dy; Show end;
Metodlarni tasvirlash jarayonida Metod nomidan oldin obyekt nomi qo’shiladi,
ya’ni metodning tarkibiy (murakkab-kompozitsion) nomi hosil bo’ladi. Bunday
nomlanish aniq bir protsedurani nimaga qarashli ekanligini bildiradi. Obyekt
maydonlarini protseduralarda qayta tasvirlash mumkin emas. Masalan, bunga misol
qilib “fragment” olamiz.
Constructor TGraphObj.Init; Var
x, y: integer; color:word; {Xato!} Begin … end;
Ko’rinib turibdiki, abstrakt obyekt TGraphObj ekranga ma’lumot chiqarish uchun
ishlatilmayabdi. Shuning uchun uning metodi Draw bu yerda hech qanday ish
bajarmaydi. Ammo Hide, Show va MoveTo metodlari Draw metodiga murojaat qilib
ish bajaradi.
Ob’yektga mo‘ljallangan programmalash asoslari.](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_10.png)
![C++ dasturlash tili 1980 yillar boshida Bjarne Stroustrup tomonidan C dasturlash
tiliga asoslangan holda yaratildi. C++ dasturlash tili juda ko’p qo’shimchalarni o’z
ichiga olgan dasturlash tilidir. Bu qo’shimchalarning eng asosiysi ob’ektlar bilan
ishlash olish imkoniyatidir. Dasturlarni tez va sifatli yozish hozirgi kunda katta
ahamiyat kasb etmoqda. Buni ta’minlash uchun ob’ektli dasturlash g’oyasi ilgari
surildi. C++ dasturlash tili esa gibrid tildir. Unda С dasturlash tiliga o’xshab
strukturali dasturlash yoki yangicha, ob’ektlar bilan dasturlash mumkin. C++
dasturlash tili funksiya va ob’ektlarning juda boy kutubxonalariga ega. Ya’ni C++
dasturlash tilida dasturlashni o’rganish ikki qismga bo’linadi. Birinchisi bu C++
dasturlash tilini o’zini o’rganish, ikkinchisi esa C++ da tilining standart
kutubxonasidagi tayyor obyekt va funksiyalarini qo’llashni o’rganishdir.
2.Ob’yekt va class tushunchasi.
Sinf (class) - bu Borland C++ da maxsus turlar bo’lib, o’zida maydon, usullar va
xossalarni mujassamlashtiradi. Sinf -Yangi tip sinfni e’lon qilish bilan tuziladi. Sinf -
bu bir – biri bilan funktsional orqali bog’langan o’zgaruvchilar va usullar to’plamidir
Sinf murakkab struktura bo’lib, ma’lumotlar ta’riflaridan tashqari, prosedura va
funksiyalar ta’riflarini o’z ichiga oladi.Obyekt - bu sinfning real nusxasi bo’lib,
ma’lumotlar va funksiyalardan tashkil topadi. U dasturning o’zgaruvchilarni e’lon
qilish bo’limida hosil qilinadi. Obektga mo'ljallangan yondashuv, obyektga
mo'ljallangan dasturlashning asosiy tayanch iboralari bu obyekt, xabar,
aloqadir.Obektlar o'rtasidagi aloqa obyektga mo'ljallangan dasturlashning muhim
tarkibiy qismidir. Obyektlar bir biri bn 2 xil usulda aloqa urnatadi. 1-si: xabar junatish
orqali va 2-si: agregatsiya yordamida jamlanadi.
3.Class metodlari va maydonlari.
Sinf (class) — аtributlаri, оpеrаtsiyalаri, munоsаbаtlаri vа mа’nоlаri umumiy
bo‘lgаn obyеktlаr mаjmuining tаvsifi. Grаfik jihаtdаn sinf to‘g‘ri to‘rtburchаk
ko‘rinishidа ifоdаlаnib, undа ushbu sinfning nоmi, аtributlаri vа оpеrаtsiyalаri](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_11.png)
![yozilgаn bo‘lаdi. Sinf jismоniy mоhiyatgа egа emаs, tuzilmаning e’lоn qilinishi uning
eng yaqin аnаlоgiyasidir. Sinf obyеktni yarаtish uchun qo‘llаngаndаginа хоtirа аjrаlib
chiqаdi. Bu jаrаyon hаm sinf nusxаsi (class instance) ni yarаtish dеb аtаlаdi.
4.O’zgaruvchilarni ko’rinish sohalari.
Har bir nom va har bir o’zgaruvchi ular ustida bajariluvchi amallar aniqlovchi
turlarga ega bo’ladi. Masalan, int i; tavsiflash i o’zgaruvchi int turiga tegishli,
ya’ni i butun o’zgaruvchi deb aniqlaydi. Tavsiflash - dasturga nom kirituvchi
buyruqdir. Tavsiflash o’zgaruvchining turini aniqlaydi. Tur nom va ifodalardan
to’g’ri foydalanishni aniqlaydi. Butun tur uchun quyidagi amallar aniqlangan:
+ , -, * va /. Asosiy turlar - char; short; int; long; float; double. Birinchi to’rtta tur
butun kattaliklarni, oxirgi ikkitasi suzuvchi nuqtali, ya’ni kasr sonlarni tasvirlash
uchun ishlatiladi. char turidagi o’zgaruvchi mazkur kompyuterda belgilarni odatda
bayt saqlash o’lchoviga ega, int turidagi o’zgaruvchi esa mazkur kompyuterdagi
butun arifmetikaga mos o’lchovga ega odatda so’z. Turlar bilan tasvirlangan butun
sonlar diapazoni uning o’lchoviga bog’liq bo’ladi uni sizeof buyrug’i yordamida
hisoblash mumkin.
5. Ob’yektga mo‘ljallangan programmalashning asosiy prinsiplari. Abstraksiya
Samarali inkapsulyalash - sinchkovlik bilan ishlab chiqish hamda abstraktsiya va
tajribadan foydalanish natijasi. Inkapsulyalashdan samarali foydalanish uchun
dasturni ishlab chiqishda avval abstraktsiyadan va uning bilan bog‘liq
kontsyeptsiyalardan foydalanishni o‘rganib olish lozim.Abastraktsiya murakkab
masalani soddalashtirish jarayonidir. Muayyan masalani yechishga kirishar ekansiz,
siz barcha dyetallarni hisobga olishga urinmaysiz, balki yechimni
osonlashtiradiganlarini tanlab olasiz.Abstraktsiyaning ikkita afzal jihati masala
yechimini soddalashtiradi. Dasturiy ta’minot komponyentlaridan takroran foydalanish
imkoniyatini yaratadi. Abstraktsiya bitta masala yechimidan ushbu sohadagi boshqa
masalalarni ham yechishda foydalanish imkonini byeradi.](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_12.png)
![6. Ob’yektga mo‘ljallangan programmalashning asosiy prinsiplari.
Inkapsulasiya. Inkapsulyalashdan to‘g‘ri foydalanish tufayli ob’yektlar bilan
o‘zgartiriladigan komponyentlar (tarkibiy qismlar) dek muomala qilish mumkin.
Inkapsulyalash tufayli, ob’yektda boshqa ob’yektlar uchun ko‘rinmas bo‘lgan
o‘zgarishlarni amalga oshirish mumkin. Agar intyerfyeys o‘zgartirilmasa, barcha
o‘zgarishlar ob’yektdan foydalanayotganlar uchun ko‘rinmas bo‘ladi. Inkapsulyalash
komponyentni yaxshilash, amalga oshirish samaradorligini ta’minlash, xatolarni
bartaraf etish imkonini byeradi, yana bularning hammasi dasturning boshqa
ob’yektlariga ta’sir ko‘rsatmaydi. Ob’yektdan foydalanuvchilar ularda amalga
oshirilayotgan barcha o‘zgarishlardan avtomatik tarzda yutadilar. Inkapsulyalash
yordamida modulli dasturlarni yaratish mumkin. Samarali inkapsulyalashning uchta
o‘ziga xos byelgisi qo‘yidagicha:-abstraktsiya; -joriy qilishning byerkitilganligi; -
mas’uliyatning bo‘linganligi.
7.Ob’yektga mo‘ljallangan programmalashning asosiy prinsiplari. Vorislik.
Vorislik mavjud bo‘lgan sinfning ta’rifi asosidayoq yangi sinfni yaratish imkonini
byeradi. Yangi sinf boshqasi asosida yaratilgach, uning ta’rifi avtomatik tarzda
mavjud sinfning barcha xususiyatlari, xulq-atvori va joriy qilinishiga vorislik qiladi.
Avval mavjud bo‘lgan sinf intyerfyeysining barcha myetodlari va xususiyatlari
avtomatik tarzda voris intyerfyeysida paydo bo‘ladi. Vorislik voris sinfida biron-bir
jihatdan to‘g‘ri kyelmagan xulq-atvorni avvaldan ko‘ra bilish imkonini byeradi.
Bunday foydali xususiyat dasturiy ta’minotni talablarning o‘zgarishiga moslashtirish
imkonini byeradi. Agar o‘zgartirishlar kiritishga ehtiyoj tug‘ilsa, bu holda eski sinf
funktsiyalariga vorislik qiluvchi yangi sinf yozib qo‘ya qolinadi. Kyeyin
o‘zgartirilishi lozim bo‘lgan funktsiyalarga qaytadan ta’rif byeriladi hamda yangi
funktsiyalar qo‘shiladi. Bunday o‘rniga o‘rin qo‘yishning mazmuni shundan iboratki,
u dastlabki sinf ta’rifini o‘zgartirmay turib, ob’yekt ishini o‘zgartirish imkonini
byeradi. Agar biz ko‘p martalab qo‘llash yoki boshqa biron maqsadlarga ko‘ra](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_13.png)
![vorislikni qo‘llamoqchi bo’lsak, avval har gal myerosxo‘r-sinf bilan vorislikni
berayotgan sinfning turlari o‘zaro mos kyeladimi shuni tekshirish kk.
8.Ob’yektga mo‘ljallangan programmalashning asosiy prinsiplari. Polimorfizm.
Polimorfizm shunday holatki, bunda qandaydir bitta narsa ko‘p shakllarga ega
bo‘ladi. Dasturlash tilida «ko‘p shakllar» dyeyilganda, bitta nom avtomatik
myexanizm tomonidan tanlab olingan turli kodlarning nomidan ish ko‘rishi
tushuniladi. Shunday qilib, polimorfizm yordamida bitta nom turli xulq-atvorni
bildirishi mumkin. Vorislik polimorfizmning ayrim turlaridan foydalanish uchun
zarurdir. Aynan o‘rindoshlik imkoniyati mavjud bo‘lgani uchun, polimorfizmdan
foydalanish mumkin bo‘ladi. Polimorfizm yordamida tizimga to‘g‘ri kyelgan paytda
qo‘shimcha funktsiyalarni qo‘shish mumkin. Dasturni yozish paytida hatto tahmin
qilinmagan funktsionallik bilan yangi sinflarni qo‘shish mumkin, buning ustiga
bularning hammasini dastlabki dasturni o‘zgartirmay turib ham amalga oshirish
mumkin. Yangi talablarga osongina moslasha oladigan dasturiy vosita dyeganda,
mana shular tushuniladi.
Polimorfizmning uchta asosiy turi mavjud:-Qo‘shilish polimorfizmi ; -Paramyetrik
polimorfizm ; -Ortiqcha yuklanish.](/data/documents/0c716422-ac91-4890-bc84-6f4feffb144f/page_14.png)
Linux operatsion tizimida OMP texnologiyasining klassik texnologiyalardan olgan usul va mexanizmlari mavzusida tayyorlagan Reja: 1. Obyekt va uning xossalari. 2. OMPning asosiy prinsiplari. 3. Texnologiyaning qulayliklari. 4 . Texnologiyaning qo’llash bosqichlari.
Obyektga yo’naltirilgan programmalash (OYP) zamonaviy texnologiyalardan bo’lib uning negizida obyekt (object) tushunchasi yotadi. Shuning uchun bu texnologiyani obyektga mo’ljallangan yoki ob’ektli texnologiya ham deydilar. Obyekt bizga programmalash kursining kirish qismidan ma’lum bo’lgan yozuv, aralash tip (record) tipiga o’xshashdir. Obyektga yozuvdan farqliroq nafaqat ma’lumotlar, balki ularni qayta ishlash uchun kerakli bo’lgan algoritmlar (qism programmalar) saqlanadi. Ta’rif: Obyekt bu shunday strukturadirki uning komponentalarini turli tipli o’zaro bog’liq ma’lumotlar va bu ma’lumotlarni ishlatadigan qismprogrammalar (protsedura va funksiyalar) tashkil qiladi. Obyektni ma’lumotlarning yangi tipi ham deyishimiz mumkin.Shu asosida Cumula 67 tilidan boshlab yangi OYP texnologiyasi paydo bo’ldi va keyinchalik Pascal va C++ tillarini rivojlantirdi.Texnologiyasi strukturaga va modulli programmalash texnologiyalariga suyanadi va ularni yanada kengaytiradi. Obyekt tushunchasiga misol qilib “Kompyuter”ni ham olishimiz mumkin.Kompyuter alohida qismlardan ( protsessor, monitor, klaviatura va hokazokar) iborat bo’lib,xotira hajmi,monitor kuchlanishi,tezkorlik va hokazo parametrlar bilan xarakterlanadi. Bular kompyuter haqidagi ma’limotlarni bir qismini tashkil qiladi. Bundan tashqari kompyuter turli amallarni bajaradi yoki uning ustida har xil amallar bajariladi, masalan, disklarni joylashtirish, ekranda figurani chiqarish, hisoblashni bajarish va hokazolarni bajara olamiz. Ya’ni “kompyuter” obyekt parametrlar va ular ustida bajariladigan amallar majmuassi hisoblanadi. Obyekt o’ziga xos xususiyatlarni birlashtiradi va ularni qayta ishlaydi. OMD texnologiyasi katta programmaviy ma’lumotlarni ishlab chiqishda quyidagi qulayliklar beradi:
Sohaning oddiy tabiiy tushunchalarini ishlatish va yangi tushunchalarni hosil qilish ; Programma hajmini xossa va amallarni ixchamlashtirish asosida kamaytirish,xotirani dinamik obyektlarni qo’llash natijasida tejash; Obyektlar kutubxonasini yaratish, programmani o’zgartirishni osonlashtirish; Qism programmalarni turli to’plamli formal parametrlari bilan qo’llash; Obyekt haqida to’liq ma’lumotni bir joyda birlashtirish va programma taxlashni soddalashtirish; Aytishimiz kerakki OYP texnologiyasi kamchiliklarga ham ega va qator holatlarda o’z samaradorligini ko’rsata olmaydi. Masalan, agar uning virtual metodlari qo’llanilsa programma tezkorligi pasayishi mumkin. Sodda va kichik hajmga ega bo’lgan programmalarda bu texnologiyani ishlatish maqsadga muvofiq emasdir. OMPni ishlatish programmani soddalashtirmaydi ammo programmani yaratish texnologiyasini osonlashtiradi. Bizga ma’lum bo’lgan TPas yoki BP muhitlarda OMP ga asoslangan Turbo Vision kutubxona (qism programmalar majmua) si bo’lib ishlatiladi va muloqotli (interaktiv) programmalar to’plamini loyihalash uchun katta qulayliklar yaratib beradi. OYP texnologiyasi asosiy prinsiplari (xususiyatlari). Texnologiyaning negizida uchta bosh tushunchalar yotadi. Inkapsulyatsiya (Qobiqlash). Qobiqlash ma’lumotlar to’plamini va bu to’plamni qayta ishlashga mo’ljallangan algoritmlarni (qism programmalarni ya’ni protsedura
va funksiyalarni) birlashtiri sh hisoblanadi . Natijada yangi tip obyekt (object) paydo bo’ladi. OMP muhitida ma’lumotlarni obyekt maydonlari va qism programmalarni obyekt metodlari deymiz. Qulayliklari: a) Obyekt tashqi muhitdan mustaqil bo’ladi. b) Ma’lumotlar va algoritmlari modintifatsiya qilish (o’zgartirish) osonlashadi. d) Obyektlar kutubxonasini yaratishga qulay sharoitlar paydo bo’ladi. Vorislik (Meroslik, irsiylik – meros olish). Tayyor obyektlar yordamida yangi obyektlar ketma - ketligini yaratish hisoblanadi. Eski(bosh) obyektlarga ma’lumotlar tasvirlanishi va ularni qayta ishlash metodlari yangi obyektlarga “merosiy” (otadan - o’g’ilga - nevaraga) o’tishidir. Ya’ni bosh obyektdagi maydonlar va metodlar avtomatik ravshda “otadan” “o’g’ilga” o’tadi, yangilari bilan kengaytiriladi yoki o’zgartiriladi. Qulayliklar: a) Obyekt xususiyatlarini o’zgartirishni osonlashtiradi. b) Masala qo’yilishida bosh (ota) ob’ektda mujassamlangan xususiyatlar keyinchalik yangi (o’g’il) ob’ektlarning xususiyatlari bilan kengaytiriladi. c) Murakkab programmani qadam-qadam ishlab chiqish sharoiti paydo bo’ladi.
Polimorfizm (umumiylik, o’rindoshlik). Polimorfizm deb bitta bosh (ota) obyektdan paydo bo’lgan qarindosh obyektlarning o’xshash muammolarni turlicha (o’ziga xos) usullar yordamida yechishga aytiladi. Boshqacha qilib aytganda, tasvirlangan qismp rogrammalar obyektlar ketma - ketligida ta’sir kuchiga ega bo’lib, har bir keying pog’onada (bosqichda) turgan obyekt o’zi ustida bu qism programma o’z ichida qo’llanilishi ham mumkin. Qulayliklari: a) Bosh ob’ektdagi metodlarda mavjud bo’lmagan xususiyatlarni key- ingi pog’onadagi ob’ektlarda hosil qilish. b) Yangi ob’ektga bosh ob’ektdagi metod nomi bilan metodni e’lon qi- lib unda yangi xossalarni kiritish. c) Ikkita bir xil metod va turli xususiyatlarni loyihalash. d) Virtuallashtirish (виртуализация), ya’ni nafaqat yangi (o’g’il) ob’ekt metodini bosh (ota) ob’ekt metodlariga murojaat qilinishini, balki teska risi ham, ya’ni bosh ob’ekt metodlarini yangi ob’ekt metodlariga murojaat qilinishini tashkil qilish. Texnologiya asoslarini qo’llash va talablarini qondirish maqsadida quyida berilganmasalaning yechimining ketma-ketligini tahlil qilamiz. Masala: Ekranda turli grafik obrazlarni (nuqta, aylana, kvadrat, chiziq) hosil qilib ularni harakatini tashkil qiluvchi programma tuzilsin: Ekran holatini quyidagi chizmada ko’rsatishimiz mumkin.