Obyekt nima?
Mashinani tasavvur qiling,
Obyekt Obyektga
yo'naltirilgan dasturlash(OYD) texnologiyasining eng asosiy kalit
tushunchasidir. Atrofga qarang, haqiqiy hayotdagi bir necha
obyektlarni ko'rishingiz mumkin: stol, uy, it, mushuk, televizor va
h.k.
Ularning
barchasining albatta hususiyatlari
va bajaradigan
vazifalari (funktsiyalari)
bor. Masalan, Mushuk hususiyatlari:
rangi, qorni to'qligi, yoshi, jinsi; funktsiyalari:
ovqat
yeyishi, myovlashi, yurishi, sichqon tutishi. Mashina, hususiyatlari:
tezligi,
rangi, nomi, narxi; funktsiyalari:
yurishi, to'xtashi, oyna artgichlarining ishlashi, eshiklarning
ochilib yopilishi v.h.k. Bu kabi hayotiy misollarning hususiyatlari
va funktsiyalarini
aniqlash OYD nuqtai nazaridan fikrlashning eng zo'r ko'rinishidir.
Bir
daqiqaga to'xtang va hozirda atrofingizdagi biror narsalarni analiz
qiling. Har bir obyekt uchun o'zingizdan so'rang: “Bu
obyektning qanday hususiyatlari bor?”
, “Qanday
vazifalarni bajaradi?”
kabi. Va kuzatish natijalaringizni yozib oling, sezgan bo'lsangiz
tuziladigan ro'yxat obyektning murakkabligiga qarab ko'payib boradi.
Kompyuter indikatorining 2 ta hususiyati
bor o'chiq va yoniq; funktsiyalari
esa
yonish va o'chish. Bu barcha kuzatishlar OYD dunyosiga o'tkazish
mumkin.
Dasturlashdagi
obyekt.
Dasturlashdagi obyekt(bundan keyin oddiygina obyekt deb
ketiladi) ham haqiqiy hayotdagi obyektlarga o'xshash: Ular ham
qandaydir hususiyatlar va bajaradigan funktsiyalardan iborat bo'ladi.
Obyektning hususiyatlari har xil dasturiy o'zgaruvchilardan
iborat bo'ladi va ularning o'zgartirish uchun qandaydir funktsiyalar
bajariladi. Bunday funktsiyalar bilan o'zgaruvchilarning
holatini berkitish mumkin ya'ni aynan o'sha o'zgaruvchini tashqaridan
o'zgartirish uchun albatta maxsus funktsiyadan foydalanish kerak
bo'ladi. Bu jarayon “Enkapsulatsiya” deb atalib, OYDning
eng muxim tushunchalaradian biridir. Hech e'tibor berganmisiz
dorilarda ham shu termin ishalitladi ya'ni kapsula(ustidan maxsus
modda bilan o'ralgan dorilar), buni misolni Enkapsulatsiya
jarayoni esda yaxshi qolishi va tushunarli bo'lishi uchun
keltirdim.
Mashinani tasavvur qiling,
Uni dasturlash obyekit sifatida modellashtiramiz:
Uning o'zgaruvchilari( hozirgi tezligi, qolgan benzini, va h.k) va
uning funktsiyalari(to'xtatish, tezlikni oshirish, rulni burish, va
h.k.). Bu yerda uning bakidagi benzini yurishi tufayli kamayib boradi
demak uning qiymatining o'zgarishi 0dan bakning sig'imigacha
bo'ladi, yoki uning tezligi ham shu kabi aynan qaysidir
funktsiyalarning amalga oshirilishi orqali u ham 0 dan maksimal
tezligigacha o'zgarishi mumkin. Bulardan tashqari mashinaning ba'zi
hususiyatlari borki ular o'zgarmasligi mumkin, masalan, rangi.
Demak, ko'rinib turiptiki mashina ham o'z navbatida bir necha mayda
obyeklardan iborat bo'ladi. Va albatta ularni kodda yozganda ham
alohida obyekt sifatida ifodalash kerak bu orqali nimalarga erishish
mumkin:
- Qismlilik: Har bir obyektga tegishli bo'lgan kodlar alohida-alohida, boshqa obyeklarga bog'liq bo'lmagan holda boshqarish imkoniyatiga ega bo'lamiz. Bu hammasi emas, tasavvur qiling mashina obyektini ifodalovchi kodni bo'lmasdan faqat bitta faylda ifodaladik; bu esa murakkabligiga qarab yuzlab hatto minglab qatorli kod bo'lishi mumkin. Undan biror narsani topib-o'zgartrish ancha mashaqqat bo'ladi.
- Qayta foydalanish: Yana boshqa plyus tarafi biz bo'laklagan mashinaning detallarini boshqa obyektlarda ham ishlatishimiz mumkin. Masalan, 2 xil mashina ularning shunday qismlari borki aynan bir xil, ana o'shalar uchun ikki marta alohida kod yozmasdan, bitta yozganimizni qayta ishlatishimiz mumkin.
- Uzib-ulanuvchanligi: buni tushunish uchun yuqoridagi misoldan foydlanamiz, aytaylik, mashinaning biror qismi ishlamayapti, xo'sh nima qilinadi? yoki ishlab turgan boshqasiga almashtiramiz, yoki tuzatamiz. Mashinaning biror bolti buzilsa uni boshqa ishlab turgani bilan almashtirasiz yoki tuzatamiz lekin mashinani almashtirmaymiz.
Bu
yuqoridagi ma'lumotlar yaxshi tushunarli bo'lmagan bo'lsa. Keyingi
maqolalarda bularni kodlar bilan yozib tushuntirib boriladi.
class nima?
ReplyDeleteQuyidagi maqolani o'qib chiqishni tavsiya qilaman:
ReplyDeletehttp://oddiy.blogspot.com/2012/09/obyekga-yonaltirilgandasturlash-nima-va.html
Birdaniga bu tushunchalarni to'liq tushunib olish qiyin bo'lishi mumkin, ko'p praktika qilib asta-sekin yaxshilab tushunib borasiz.