Ob’yektga yo‘naltirilgan dasturlash (ruschasiga OOP) haqida

Ob’yektga yo‘naltirilgan dasturlash (ruschasiga OOP) haqida

Ob’yekt nima?

Ob’yekt Ob’yektga yo‘naltirilgan dasturlash (OYD) texnologiyasining eng asosiy kalit tushunchasidir. Atrofga qarang, haqiqiy hayotdagi bir necha ob’yektlarni ko‘rishingiz mumkin: stol, uy, it, mushuk, televizor va h.k.

Ularning barchasining albatta hususiyatlari va bajaradigan vazifalari (funksiyalari) bor. Masalan, Mushuk hususiyatlari: rangi, qorni to‘qligi, yoshi, jinsi; funksiyalari: ovqat yeyishi, myovlashi, yurishi, sichqon tutishi. Mashina, hususiyatlari: tezligi, rangi, nomi, narxi; funksiyalari: yurishi, to‘xtashi, oyna artgichlarining ishlashi, eshiklarning ochilib yopilishi v.h.k. Bu kabi hayotiy misollarning hususiyatlari va funksiyalarini aniqlash OYD nuqtai nazaridan fikrlashning eng zo‘r ko‘rinishidir.

Bir daqiqaga to‘xtang va hozirda atrofingizdagi biror narsalarni analiz qiling. Har bir ob’yekt uchun o‘zingizdan so‘rang: “Bu ob’yektning qanday hususiyatlari bor?” , “Qanday vazifalarni bajaradi?” kabi. So‘ng kuzatish natijalaringizni yozib oling, sezgan bo‘lsangiz tuziladigan ro‘yxat ob’yektning murakkabligiga qarab ko‘payib boradi. Kompyuter indikatorining 2 ta hususiyati bor o‘chiq va yoniq; funksiyalari esa yonish va o‘chish. Bu barcha kuzatishlar OYD dunyosiga o‘tkazish mumkin.

OOP_1

Dasturlashdagi ob’yekt.

Dasturlashdagi ob’yekt (bundan keyin oddiygina ob’yekt deb ketiladi) ham haqiqiy hayotdagi ob’yektlarga o‘xshash: Ular ham qandaydir hususiyatlar va bajaradigan funksiyalardan iborat bo‘ladi. Ob’yektning hususiyatlari har xil dasturiy o‘zgaruvchilardan iborat bo‘ladi va ularni o‘zgartirish uchun qandaydir funksiyalar bajariladi. Bunday funksiyalar bilan o‘zgaruvchilarning holatini berkitish mumkin ya’ni aynan o‘sha o‘zgaruvchini tashqaridan o‘zgartirish uchun albatta maxsus funksiyadan foydalanish kerak bo‘ladi. Bu jarayon “Inkapsulyasiya” deb atalib, OYD’ning eng muhim tushunchalaradian biridir. Hech e’tibor berganmisiz dorilarda ham shu termin ishlatiladi ya’ni kapsula (ustidan maxsus modda bilan o‘ralgan dorilar), bu misolni Inkapsulyasiya jarayoni esda yaxshi qolishi va tushunarli bo‘lishi uchun keltirdim.

Mashinani tasavvur qiling,

OOP_2

Uni dasturlash ob’yekti sifatida modellashtiramiz:

Uning o‘zgaruvchilari( hozirgi tezligi, qolgan benzini, va h.k) va uning funksiyalari(to‘xtash, tezlikni oshirish, rulni burish, va h.k.). Bu yerda uning bakidagi benzini yurishi tufayli kamayib boradi demak uning qiymatining o‘zgarishi 0 dan bakning sig‘imigacha bo‘ladi, yoki uning tezligi ham shu kabi aynan qaysidir funksiyalarning 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 ob’yektlardan iborat bo‘ladi. Va albatta ularni kodda yozganda ham alohida ob’yekt sifatida ifodalash kerak bu orqali nimalarga erishish mumkin:

Qismlilik: Har bir ob’yektga tegishli bo‘lgan kodlar alohida-alohida, boshqa ob’yeklarga bog‘liq bo‘lmagan holda boshqarish imkonyatiga ega bo‘lamiz. Bu hammasi emas, tasavvur qiling mashina ob’yektini 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‘zgartirish ancha mashaqqatli bo‘ladi.
Qayta foydalanish: Yana boshqa plyus tarafi, biz bo‘laklagan mashinaning detallarini boshqa ob’yektlarda 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.
Yuqoridagi ma’lumotlar yaxshi tushunarli bo‘lmagan bo‘lsa, havotirlanmang, keyingi maqolalarda bularni kodlar bilan yozib tushuntirib boraman.

Manba: ITportal.uz

Сайтимизнинг энг чиройли расмларини Инстаграмдаги саҳифамизда томоша қилинг!