9-мавзу. Объектга йўналтирилган дастурлаш



Download 24,54 Kb.
bet1/3
Sana23.02.2022
Hajmi24,54 Kb.
#119562
  1   2   3
Bog'liq
9-мавзу


9-мавзу. Объектга йўналтирилган дастурлаш.

Режа:
1.Инкапсуляция, полиморфизм, ворислик;


2.Объектга йўналтирилган дастурлаш тушунчаси;
3.Объектлар трассировкаси;
4.Нусхалаш конструктори.

Aннотация: Ушбу маърузада Объектга йўналтирилган дастурлаш тамойиллари (инкапсуляция, полиморфизм, ворислик) ҳақида маълумотлар келтирилган.


Калит сўзлар: инкапсуляция, синф, ОЙД, конструктор ва деструктор, рўйхат, манзил, тугун, адрес олиш &, бўшатиш, кўрсаткич, инкапсуляция, синф, ОЙД, конструктор ва деструктор.
1. Инкапсуляция, полиморфизм, ворислик
Объектга йўналтирилган дастурлаш (ОЙД) – бу дастурлашга янги бир ёндашувдир. Ҳисоблаш техникасининг ривожланиши ва ечилаётган масалаларни тобора мураккаблашуви дастурлашнинг турли моделларини (парадигмаларини) юзага келишига сабаб бўлмоқда. Биринчи компиляторларда (масалан, FORTRAN тили) дастурлашнинг функциялардан фойдаланишга асосланган проседура моделини қўллаб қувватлаган. Бу модел ёрдамида дастур тузувчи бир нечта минг сатрли дастурларни ёзиши мумкин эди. Ривожланишнинг кейинги босқичида дастурларнинг структурали модели пайдо бўлди ва ALGOL, Pascal ва C тиллари компиляторларида ўз аксини топди. Структурали дастурлашнинг моҳияти – дастурни ўзаро боғланган процедуралар (блоклар) ва улар қайта ишлайдиган маълумотларнинг мажмуаси деб қарашдан иборат. Ушбу модел дастур блоклари кенг қўллашга, GOTO операторидан имкон қадар кам фойдаланишга таянган ва унда дастур тузувчи ўн минг сатрдан ортиқ дастурларни ярата олган. Яратилган дастурни процедурали моделга нисбатан созлаш ва назорат қилиш осон кечган.
Мураккаб масалаларни ечиш учун дастурлашнинг янги услубига зарурат пайдо бўлдики, у ОЙД моделида амалга оширилди. ОЙД модели бир нечта таянч концепсияларга асосланади.
Маълумотларни абстракциялаш – маълумотларни янги турини яратиш имконияти бўлиб, бу турлар билан худди маълумотларнинг таянч турлари билан ишлагандек ишлаш мумкин. Одатда янги турларни маълумотларнинг абстракт тури дейилади, гарчи уларни соддароқ қилиб “фойдаланувчи томонидан аниқланган тур” деб аташ мумкин.
Инкапсуляция – бу маълумотлар ва уларни қайта ишловчи кодни бирлаштириш механизмидир. Инкапсулясия маълумотлар ва кодни ташқи таъсирдан сақлаш имконини беради.
2. Объектга йўналтирилган дастурлаш тушунчаси
Юқоридаги иккита концепцияни амалга ошириш учун C++ тилида синфлар ишлатилади. Синф термини билан объектлар тури аниқланади. Синфнинг ҳар бир вакили (нусхаси) объект деб номланади. Ҳар бир объект ўзининг алоҳида ҳолатига эга бўлади. Объект ҳолати унинг маълумотлар-аъзоларнинг айни пайтдаги қиймати билан аниқланади. Синф вазифаси унинг функция-аъзоларининг синф объектлари устида бажарадиган амаллар имконияти билан аниқланади.
Маълумот синф объектини яратиш конструктор деб номланувчи махсус функция-аъзо томонидан, ўчириш эса деструктор деб номланувчи махсус функция–аъзо орқали амалга оширилади.
Синф ички маълумотларига мурожаатни чеклаб қўйиши мумкин. Чеклов маълумотларни очиқ (public), ёпиқ (private) ва ҳимояланган (protected) деб аниқлаш билан тайинланади.
Синф, шу турдаги объектнинг ташқи дунё билан ўзаро боғланиши учун қатъий мулоқот шартларини аниқлайди. Ёпиқ маълумотларга ёки кодга фақат шу объект ичида мурожаат қилиш мумкин. Бошқа томондан, очиқ маълумотларга ва кодларга, гарчи улар объект ичида аниқланган бўлса ҳам, дастурнинг ихтиёрий жойидан мурожаат қилиш мумкин ва улар объектни ташқи олам билан мулоқотни яратишга хизмат қилади. Яратилган объектларни, уларни функция–аъзоларига оддийгина мурожаат орқали амалга оширилувчи хабарлар (ёки сўровлар) ёрдамида бошқариш мумкин. Кейинчалик Windows хабарлари билан адаштирмаслик учун сўров термини ишлатилади.
Ворислик – бу шундай жараёнки, унда бир объект бошқасининг хоссаларини ўзлаштириши мумкин бўлади. Ворислик орқали мавжуд синфлар асосида ҳосилавий синфларни қуриш мумкин бўлади. Ҳосилавий синф (синф–авлод) ўзининг она синфидан (синф-аждод) маълумотлар ва функцияларни ворислик бўйича олади, ҳамда улар сатрига фақат ўзига хос бўлган қирраларни амалга оширишга имкон берувчи маълумот ва функцияларни қўшади. Aждод синфдаги ҳимояланган маълумот-аъзоларга ва функция-аъзоларга аждод синфда мурожаат қилиш мумкин бўлади. Бундан ташқари, ҳосилавий синфда она синф функциялари қайта аниқланиши мумкин. Демак, ворислик асосида бир-бири билан “она-бола” муносабатидаги синфлар шажарасини яратиш мумкин. Таянч синф термини синфлар шажарасидаги она синф синоними сифатида ишлатилади. Aгар объект ўз атрибутларини (маълумотлар-аъзолар ва функциялар–аъзолар) фақат битта она синфдан ворислик билан олса, якка (ёки оддий) ворислик дейилади. Aгар объект ўз атрибутларини бир нечта она синфлардан олса, тўпламли ворислик дейилади.
Полиморфизм – бу коднинг, бажарилиш пайтидан юзага келадиган ҳолатга боғлиқ равишда ўзини турлича амал қилиш хусусиятидир. Полиморфизм – бу фақат объектлар хусусияти бўлмасдан, балки функциялар-аъзолар хусусиятидир ва улар хусусан, битта номдаги функция-аъзони, ҳар хил турдаги аргументларга эга ва бажаридаган амали унга узатиладиган аргументлар турига боғлиқ бўлган функциялар учун (ўрнида) фойдаланиш имкониятида намоён бўлади. Бу ҳолатга функцияларни қайта юклаш дейилади. Полиморфизм амалларга ҳам қўлланиши мумкин, яъни амал мазмуни (натижаси) операнд (маълумот) турига боғлиқ бўлади. Полиморфизмнинг бундай турига амалларни қайта юклаш дейилади.
Полиморфизмнинг яна бир таърифи қуйидагича: полиморфизм – бу таянч синфга кўрсатгичларнинг (мурожаатларнинг), уларни виртуал функцияларни чақиришдаги турли шакл (қийматларни) қабул қилиш имкониятидир. C++ тилининг бундай имконияти кечиктирилган боғланиш натижасидир. Кечиктирилган боғланишда чақириладиган функция-аъзолар адреслари дастур бажарилиши жараёнида динамик равишда аниқланади. Aнъанавий дастурлаш тилларида эса бу адреслар статик бўлиб, улар компиляция пайтида аниқланади (олдиндан боғланиш). Кечиктирилган боғланиш фақат виртуал функциялар учун ўринли.
Дастурда ишлатиладиган ҳар бир ўзгарувчи ўз тоифасига ега ва у қуйидагиларни аниқлайди:
1.Хотирадаги ўлчовини;
2.Унда сақланаётган маълумотларни;
3.Унинг ёрдамида бажарилиши мумкин булган амалларни.
C++ тилида дастурчи ўзига керакли ихтиёрий тоифани ҳосил қилиши мумкин. Бу янги тоифа ички тоифаларнинг хоссалари ва уларнинг функсионал имкониятларини ўзида ифодалайди. Янги тоифа синфни эълон қилиш орқали тузилади. Синф бу – бир-бири билан функсионал боғанган ўзгарувчилар ва усуллар (функциялар) тўпламидир.
Масалан: Мушук номли синф тузмоқчимиз. Бу ерда унинг ёши, оғирлиги каби ўзгарувчилар ва миёвлаш, сичқон тутиш каби функциялардан ишдатилади. Ёки Машина синфи ғилдирак, ешик, ўриндиқ, ойна каби ўзгарувчилар ва хайдаш, тўхтатиш каби функциялардан иборат.
Синфдаги ўзгарувчилар – синф аъзолари ёки синф хоссалари дейилади.
Синфдаги функциялар одатда ўзгарувчилар устида бирор бир амал бажаради. Уларни синф усуллари (методлари) деб ҳам аталади.
Синфни эълон қилиш учун class сўзи, синфнинг номи, { } лар ичида эса шу синфнинг аъзолари ва усуллари келтирилади. Масалан:

Download 24,54 Kb.

Do'stlaringiz bilan baham:
  1   2   3




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