1.1.Kirish
Key Point. Ob’yektga yo`naltirilgan dasturlash – katta hajmli dasturiy ta’minotni samarali yo`l bilan ishlab chiqish imkonini beradi.
Avvalgi ma’ruzalar orqali olingan bilim va tajribalar asosida tanlash,
sikl operatorlar, funksiyalar va massivlarni qo`llagan holda dasturlash olamidagi ko`plab muammolarga yechim topishimiz mumkin. Shunga qaramay, bularning barchasi katta hajmli masalalarning yechimini topishda samarali yechim sifatida qo`llanilavermaydi. Ushbu ma’ruzadan boshlab, katta hajmli dasturiy ta’minot tizimlarini ob’yektga yo`naltirilgan dasturlash tamoyillari asosida ishlab chiqishni ko`rib chiqamiz.
1.2. Ob’yektlar uchun sinflarning aniqlanishi
Key Point. Sinf ob’yektning belgi va xususiyatlarini aniqlaydi.
Ob’yektga yo`naltirilgan dasturlash (OYD) ob’yektlarni qo`llab dasturlashni qamrab oladi.
Ob’yekt bizni o`rab turgan real hayotdagi mavjud borliqni aniq tasvirlash imkoniyatini taqdim etadi.
Misol uchun, talaba, yozuv stoli, doira, tugma va hattoki qarzni ham ob’yekt sifatida qarash mumkin. Ob’yekt yagona aniqlanishga, boshqaruv va belgilarga ega.
Ob’yekt boshqaruvi (ya’ni, belgi va xususiyatlari) o`zining joriy qiymatlari bilan birgalikda ma’lumotlar maydoni orqali ifodalanadi. Masalan, doira ob’yekti doirani anglatuvchi o`z maydoniga va radiusiga ega. En va bo`y esa, to`rtburchakning xususiyatlaridir.
Ob’yekt belgilari (ob’yekt harakati ham deb yuritiladi) funksiyalar orqali aniqlanadi. Ob’yektda funksiyani chaqirish – ob’yektning harakatlanishiga chaqiruv deb qarash mumkin. Misol uchun biz doira ob’yekti uchun getArea() funksiyasini aniqlab olishimiz mumkin. Doira ob’yekti uning yuzasini hisoblash uchun getArea() ni chaqirishi mumkin.
Bir xil turdagi ob’yektlar ko`p qo`llaniluvchi sinflar orqali aniqlanadi. Sinf – bu ob’yektning ma’lumotlar maydoni va funksiyalarini aniqlaydigan shablon, reja yoki loyiha bo`lishi mumkin. Ob’yekt sinf nusxasi hisoblanadi. Biz sinfning ko`plab nusxalarini yaratishimiz mumkin. “Ob’yekt” va “nusxa” tushunchalari ko`pincha o`zaro adashtirib yuboriladi. Sinflar va ob’yektlar o`rtasidagi munosabat xuddi olmali pirog retsepti va olmali pirog o`rtasidagi munosabatga o`xshaydi. Biz birgina olmali pirog retseptidan o`zimiz istagancha olmali pirog tayyorlashimiz mumkin. 1.1-rasmda o`zining uchta ob’yektidan iborat bo`lgan, “Circle” - deb nomlangan sinf berilgan.
1.1-rasm. Sinf – bu ob’yektlarni yaratish rejasi
C++ sinfi xususiyatlarni ifodalovchi ma’lumot maydonlari va funksiyalarni aniqlash uchun o`zgaruvchilardan foydalanadi.
Bundan tashqari, sinf yangi ob’yekt yaratilishida chaqiriladigan, konstruktor nomi bilan mashhur bo`lgan maxsus tip funksiyalarini taqdim etadi. Konstruktor – bu funksiyaning alohida bir ko`rinishidir. Konstruktorlar ixtiyoriy harakatni bajarishi mumkin, lekin ular
yuklash ishlarini bajarishga, ya’ni, ob’yektlarning ma’lumot maydonlarini yuklashga mo`ljallangan. 1.2-rasmda
Circle ob’yektlari uchun sinfga misol keltirilgan.
1.2.-rasm. Sinf – bir tipli ob’yektlarni aniqlovchi reja
Sinf va ob’yektlar tasvirlangan 1.1-rasmda 1.3.-rasmda ko`rsatilganidek, UML (Unified Modeling Language) yo`riqnomalaridan foydalangan holda standartlashtirish mumkin. Bu UML sinflar diagrammalari yoki shunchaki sinflar diagrammalari deb yuritiladi. Ma’lumotlar maydoni esa quyidagicha tavsiflanadi:
dataFieldName: dataFieldType
Konstruktor quyidagicha tavsiflanadi:
ClassName(parameterName: parameterType)
Funksiya quyidagicha tavsiflanadi:
functionName(parameterName:parameterType):returnType
1.3-rasm. Sinflar va ob’yektlar UML yo`riqnomalaridan foydalangan holda taqdim qilinishi mumkin.