Mavzu: q аndоlаt mахsulоtlаri ishlаb chiqаrish
Download 0.72 Mb. Pdf ko'rish
|
loyha dastur 1
I. NAZARIY QISM
1.5.Klass. Ob’ektga yoʻnaltirilgan dasturlash tushunchasi. Yuqoridagi ikkita konsepsiyani amalga oshirish uchun C++ tilida sinflar ishlatiladi. Sinf termini bilan ob’ektlar tipi aniqlanadi. Sinfning har bir vakili (nusxasi) ob’ekt deb nomlanadi. Har bir ob’ekt oʻzining alohida holatiga ega boʻladi. Ob’ekt holati uning ma’lumotlar- a’zolarning ayni paytdagi qiymati bilan aniqlanadi. Sinf vazifasi uning funksiya- a’zolarining sinf ob’ektlari ustida bajaradigan amallar imkoniyati bilan aniqlanadi. Berilgan sinf ob’ektini yaratish konstruktor deb nomlanuvchi maxsus funksiya-a’zo tomonidan, oʻchirish esa destruktor deb nomlanuvchi maxsus funksiya–a’zo orqali amalga oshiriladi. Sinf ichki ma’lumotlarini murojaatni cheklab qoʻyishi mumkin. Cheklov ma’lumotlarni ochiq (public), yopiq (private) va himoyalangan (protected) deb aniqlash bilan tayinlanadi. Sinf, shu tipdagi ob’ektning tashqi dunyo bilan oʻzaro bogʻlanishi uchun qatʻiy muloqot shartlarini aniqlaydi. Yopiq ma’lumotlarga yoki kodga faqat shu ob’ekt ichida murojaat qilish mumkin. Boshqa tomondan, ochiq ma’lumotlarga va kodlarga, garchi ular ob’ekt ichida aniqlangan boʻlsa ham, dasturning ixtiyoriy joyidan murojaat qilish mumkin va ular ob’ektni tashqi olam bilan muloqotyaratishiga xizmat qiladi. Yaratilgan ob’ektlarni, 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 ob’ekt 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) ma’lumotlar 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 funksiyaa’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. Asosiy sinf termini sinflar shajarasidagi ona sinf sinonimi sifatida ishlatiladi. Agar ob’ekt oʻz atributlarini (ma’lumotlar-a’zolar va funksiyalar–a’zolar) faqat bitta ona sinfdan 129 vorislik bilan olsa, yakka (yoki oddiy) vorislik deyiladi. Agar ob’ekt oʻz atributlarini bir nechta ona sinflardan olsa, toʻplamli vorislik deyiladi. Polimorfizm – bu kodning, bajarilish paytida yuzaga keladigan holatga bogʻliq ravishda uning turli xil amallarni bajarish xususiyatidir. Polimorfizm – bu faqat ob’ektlar xususiyati boʻlmasdan, balki funksiyalar-a’zolar xususiyatidir va ular xususan, bitta nomdagi funksiya-a’zoni, har xil tipdagi argumentlarga ega va bajaridagan amali unga uzatiladigan argumentlar tipiga bogʻliq boʻlgan funksiyalardanfoydalanish imkoniyatini beradi. Bu holatga funksiyalarni qayta yuklash deyiladi. Polimorfizm amallarga ham qoʻllanishi mumkin, yaʻni amal mazmuni (natijasi) operand (berilgan) tipiga bogʻliq boʻladi. Polimorfizmning bunday tipiga amallarni qayta yuklash deyiladi. Polimorfizmning yana bir taʻrifi quyidagicha: polimorfizm – bu asosiy sinfga koʻrsatgichlarning (murojaatlarning), ularni virtual funksiyalarini chaqirishdagi turli 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 ob’ektga yoʻnaltirilgan dasturlash prinsiplarini qoʻllab quvvatlaydi. Bu prinsiplar quyidagilardan iborat: 1. Inkapsulyasiya 2. Vorislik 3. Polimorfizm. |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling