Объектга йўналтирилган дастурлаш (русчасига ООП) ҳақида

Объектга йўналтирилган дастурлаш (русчасига ООП) ҳақида

Объект нима?

Объект Объектга йўналтирилган дастурлаш (ОЙД) технологиясининг энг асосий калит тушунчасидир. Атрофга қаранг, ҳақиқий ҳаётдаги бир неча объектларни кўришингиз мумкин: стол, уй, ит, мушук, телевизор ва ҳ.к.

Уларнинг барчасининг албатта ҳусусиятлари ва бажарадиган вазифалари (функциялари) бор. Масалан, Мушук ҳусусиятлари: ранги, қорни тўқлиги, ёши, жинси; функциялари: овқат ейиши, мёвлаши, юриши, сичқон тутиши. Машина, ҳусусиятлари: тезлиги, ранги, номи, нархи; функциялари: юриши, тўхташи, ойна артгичларининг ишлаши, эшикларнинг очилиб ёпилиши в.ҳ.к. Бу каби ҳаётий мисолларнинг ҳусусиятлари ва функцияларини аниқлаш ОЙД нуқтаи назаридан фикрлашнинг энг зўр кўринишидир.

Бир дақиқага тўхтанг ва ҳозирда атрофингиздаги бирор нарсаларни анализ қилинг. Ҳар бир объект учун ўзингиздан сўранг: “Бу объектнинг қандай ҳусусиятлари бор?” , “Қандай вазифаларни бажаради?” каби. Сўнг кузатиш натижаларингизни ёзиб олинг, сезган бўлсангиз тузиладиган рўйхат объектнинг мураккаблигига қараб кўпайиб боради. Компьютер индикаторининг 2 та ҳусусияти бор ўчиқ ва ёниқ; функциялари эса ёниш ва ўчиш. Бу барча кузатишлар ОЙД дунёсига ўтказиш мумкин.

OOP_1

Дастурлашдаги объект.

Дастурлашдаги объект (бундан кейин оддийгина объект деб кетилади) ҳам ҳақиқий ҳаётдаги объектларга ўхшаш: Улар ҳам қандайдир ҳусусиятлар ва бажарадиган функциялардан иборат бўлади. Объектнинг ҳусусиятлари ҳар хил дастурий ўзгарувчилардан иборат бўлади ва уларни ўзгартириш учун қандайдир функциялар бажарилади. Бундай функциялар билан ўзгарувчиларнинг ҳолатини беркитиш мумкин яъни айнан ўша ўзгарувчини ташқаридан ўзгартириш учун албатта махсус функциядан фойдаланиш керак бўлади. Бу жараён “Инкапсуляция” деб аталиб, ОЙД’нинг энг муҳим тушунчаларадиан биридир. Ҳеч эътибор берганмисиз дориларда ҳам шу термин ишлатилади яъни капсула (устидан махсус модда билан ўралган дорилар), бу мисолни Инкапсуляция жараёни эсда яхши қолиши ва тушунарли бўлиши учун келтирдим.

Машинани тасаввур қилинг,

OOP_2

Уни дастурлаш объекти сифатида моделлаштирамиз:

Унинг ўзгарувчилари( ҳозирги тезлиги, қолган бензини, ва ҳ.к) ва унинг функциялари(тўхташ, тезликни ошириш, рулни буриш, ва ҳ.к.). Бу ерда унинг бакидаги бензини юриши туфайли камайиб боради демак унинг қийматининг ўзгариши 0 дан бакнинг сиғимигача бўлади, ёки унинг тезлиги ҳам шу каби айнан қайсидир функцияларнинг амалга оширилиши орқали у ҳам 0 дан максимал тезлигигача ўзгариши мумкин. Булардан ташқари машинанинг баъзи ҳусусиятлари борки улар ўзгармаслиги мумкин, масалан, ранги.

Демак, кўриниб туриптики машина ҳам ўз навбатида бир неча майда объектлардан иборат бўлади. Ва албатта уларни кодда ёзганда ҳам алоҳида объект сифатида ифодалаш керак бу орқали нималарга эришиш мумкин:

Қисмлилик: Ҳар бир объектга тегишли бўлган кодлар алоҳида-алоҳида, бошқа объекларга боғлиқ бўлмаган ҳолда бошқариш имконятига эга бўламиз. Бу ҳаммаси эмас, тасаввур қилинг машина объектини ифодаловчи кодни бўлмасдан фақат битта файлда ифодаладик; бу эса мураккаблигига қараб юзлаб ҳатто минглаб қаторли код бўлиши мумкин. Ундан бирор нарсани топиб-ўзгартириш анча машаққатли бўлади.
Қайта фойдаланиш: Яна бошқа плюс тарафи, биз бўлаклаган машинанинг деталларини бошқа объектларда ҳам ишлатишимиз мумкин. Масалан, 2 хил машина уларнинг шундай қисмлари борки айнан бир хил, ана ўшалар учун икки марта алоҳида код ёзмасдан, битта ёзганимизни қайта ишлатишимиз мумкин.
Узиб-уланувчанлиги: буни тушуниш учун юқоридаги мисолдан фойдланамиз, айтайлик, машинанинг бирор қисми ишламаяпти, хўш нима қилинади? ёки ишлаб турган бошқасига алмаштирамиз, ёки тузатамиз. Машинанинг бирор болти бузилса уни бошқа ишлаб тургани билан алмаштирасиз ёки тузатамиз лекин машинани алмаштирмаймиз.
Юқоридаги маълумотлар яхши тушунарли бўлмаган бўлса, ҳавотирланманг, кейинги мақолаларда буларни кодлар билан ёзиб тушунтириб бораман.

Манба: ITportal.uz

Хабарларни тез ва осон ўқиш учун Андроид иловамизни сақлаб олинг.