Inkapsulyasiya, polimorfizm, vorislik; Obektga yo`naltirilgan dasturlash tushunchasi; Obyektlar trassirovkasi


Obyektga yo`naltirilgan dasturlash tushunchasi


Download 12.91 Kb.
bet2/4
Sana22.02.2023
Hajmi12.91 Kb.
#1221089
1   2   3   4
Bog'liq
12-Sinf va obyektlar

2. Obyektga yo`naltirilgan dasturlash tushunchasi
Yuqoridagi ikkita konsepsiyani amalga oshirish uchun C++ tilida sinflar ishlatiladi. Sinf termini bilan Obyektlar turi aniqlanadi. Sinfning har bir vakili (nusxasi) Obyekt deb nomlanadi. Har bir Obyekt o’zining alohida holatiga ega bo’ladi. Obyekt holati uning berilganlar-a’zolarning ayni paytdagi qiymati bilan aniqlanadi. Sinf vazifasi uning funksiya-a’zolarining sinf Obyektlari ustida bajaradigan amallar imkoniyati bilan aniqlanadi.
Berilgan sinf Obyektini yaratish konstruktor deb nomlanuvchi maxsus funksiya-a’zo tomonidan, o’chirish esa destruktor deb nomlanuvchi maxsus funksiya–a’zo orqali amalga oshiriladi.
Sinf ichki berilganlarini murojaatni cheklab qo’yishi mumkin. Cheklov berilganlarni ochiq (public), yopiq (private) va himoyalangan (protected) deb aniqlash bilan tayinlanadi.
Sinf, shu turdagi Obyektning tashqi dunyo bilan o’zaro bog’lanishi uchun qat’iy muloqot shartlarini aniqlaydi. Yopiq berilganlarga yoki kodga faqat shu Obyekt ichida murojaat qilish mumkin. Boshqa tomondan, ochiq berilganlarga va kodlarga, garchi ular Obyekt ichida aniqlangan bo’lsa ham, dasturning ixtiyoriy joyidan murojaat qilish mumkin va ular Obyektni tashqi olam bilan muloqotni yaratishga xizmat qiladi. Yaratilgan Obyektlarni, ularni funksiya–a’zolariga oddiygina murojaat orqali amalga oshiriluvchi xabarlar (yoki so’rovlar) yordamida boshqarish mumkin. Keyinchalik Windows xabarlari bilan adashtirmaslik uchun so’rov termini ishlatiladi.
Vorislik – bu shunday jarayonki, unda bir Obyekt boshqasining xossalarini o’zlashtirishi mumkin bo’ladi. Vorislik orqali mavjud sinflar asosida hosilaviy sinflarni qurish mumkin bo’ladi. Hosilaviy sinf (sinf–avlod) o’zining ona sinfidan (sinf-ajdod) berilganlar va funksiyalarni vorislik bo’yicha oladi, hamda ular satriga faqat o’ziga xos bo’lgan qirralarni amalga oshirishga imkon beruvchi berilgan va funksiyalarni qo’shadi. Ajdod sinfdagi himoyalangan berilgan-a’zolarga va funksiya-a’zolarga ajdod sinfda murojaat qilish mumkin bo’ladi. Bundan tashqari, hosilaviy sinfda ona sinf funksiyalari qayta aniqlanishi mumkin. Demak, vorislik asosida bir-biri bilan “ona-bola” munosabatidagi sinflar shajarasini yaratish mumkin. Tayanch sinf termini sinflar shajarasidagi ona sinf sinonimi sifatida ishlatiladi. Agar Obyekt o’z atributlarini (berilganlar-a’zolar va funksiyalar–a’zolar) faqat bitta ona sinfdan vorislik bilan olsa, yakka (yoki oddiy) vorislik deyiladi. Agar Obyekt o’z atributlarini bir nechta ona sinflardan olsa, to’plamli vorislik deyiladi.
Polimorfizm – bu kodning, bajarilish paytidan yuzaga keladigan holatga bog’liq ravishda o’zini turlicha amal qilish xususiyatidir. Polimorfizm – bu faqat Obyektlar xususiyati bo’lmasdan, balki funksiyalar-a’zolar xususiyatidir va ular xususan, bitta nomdagi funksiya-a’zoni, har xil turdagi argumentlarga ega va bajaridagan amali unga uzatiladigan argumentlar turiga bog’liq bo’lgan funksiyalar uchun (o’rnida) foydalanish imkoniyatida namoyon bo’ladi. Bu holatga funksiyalarni qayta yuklash deyiladi. Polimorfizm amallarga ham qo’llanishi mumkin, ya’ni amal mazmuni (natijasi) operand (berilgan) turiga bog’liq bo’ladi. Polimorfizmning bunday turiga amallarni qayta yuklash deyiladi.
Polimorfizmning yana bir ta’rifi quyidagicha: polimorfizm – bu tayanch sinfga ko’rsatgichlarning (murojaatlarning), ularni virtual funksiyalarni chaqirishdagi turli shakl (qiymatlarni) qabul qilish imkoniyatidir. C++ tilining bunday imkoniyati kechiktirilgan bog’lanish natijasidir. Kechiktirilgan bog’lanishda chaqiriladigan funksiya-a’zolar adreslari dastur bajarilishi jarayonida dinamik ravishda aniqlanadi. An’anaviy dasturlash tillarida esa bu adreslar statik bo’lib, ular kompilyasiya paytida aniqlanadi (oldindan bog’lanish). Kechiktirilgan bog’lanish faqat virtual funksiyalar uchun o’rinli.
C++ tili Obyektga yo’naltirilgan dasturlash prinsiplarini qo’llab quvvatlaydi. Bu prinsiplar quyidagilardan iborat:

  1. Inkapsulyasiya

  2. Vorislik

  3. Polimorfizm

Inkapsulyasiya. Agar muxandis ishlab chiqarishda diod, triod yoki rezistorni ishlatsa, u bu elementlarni yangitdan ihtiro qilmaydi, balki do’kondan sotib oladi [9]. Demak, muxandis ularning qanday tuzilganligiga e’tiborini qaratmaydi, bu elementlar yaxshi ishlasa yetarli. Aynan shu tashqi konstruksiyada ishlaydigan yashirinlik yoki avtonomlik xossasi inkapsulyasiya deyiladi.
Vorislik. Yangi Obyekt yaratilayotgan bo’lsa, ikkita variantdan biri tanlanadi: mutlaqo yangisini yaratish yoki mavjud modelning konstruksiyasini takomillashtirishdir. Ko’pincha 2-variant tanlanadi, demak, ba’zi xususiyatlari o’zgartiriladi xolos. Bu narsa vorislik prinsipiga asos soladi. Yangi sinf oldin mavjud bo’lgan sinfni kengaytirishdan hosil bo’ladi. Bunda yangi sinf oldingi sinfning merosxo’ri deb ataladi.
Polimorfizm. Poli – ko’p, morfe – shakl degan ma’noni bildiradi. C++ tili bir xil nomdagi funksiya turli Obyektlar tomonidan ishlatilganda turli amallarni bajarish imkoniyatini ta’minlaydi. Polimorfizm – shaklning ko’p xilligidir.
Dasturda ishlatiladigan har bir o’zgaruvchi o’z toifasiga ega va u quyidagilarni aniqlaydi:

  1. Xotiradagi o’lchovini;

  2. Unda saqlanayotgan ma’lumotlarni;

  3. Uning yordamida bajarilishi mumkin bulgan amallarni.

C++ tilida dasturchi o’ziga kerakli ixtiyoriy toifani hosil qilishi mumkin. Bu yangi toifa ichki toifalarning xossalari va ularning funksional imkoniyatlarini o’zida ifodalaydi. Yangi toifa sinfni e’lon qilish orqali tuziladi. Sinf bu – bir-biri bilan funksional bog’angan o’zgaruvchilar va usullar (funksiyalar) to’plamidir.
Masalan: Mushuk nomli sinf tuzmoqchimiz. Bu yerda uning yoshi, og’irligi kabi o’zgaruvchilar va miyovlash, sichqon tutish kabi funksiyalardan ishdatiladi. Yoki Mashina sinfi g’ildirak, eshik, o’rindiq, oyna kabi o’zgaruvchilar va xaydash, to’xtatish kabi funksiyalardan iborat.
Sinfdagi o’zgaruvchilar – sinf a’zolari yoki sinf xossalari deyiladi.
Sinfdagi funksiyalar odatda o’zgaruvchilar ustida biror bir amal bajaradi. Ularni sinf usullari (metodlari) deb ham ataladi.
Sinfni e’lon qilish uchun class so’zi , { } ichida esa shu sinfning a’zolari va usullari keltiriladi. Masalan:

Download 12.91 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling