Ko'p formalik (Polymorphism) OYDning uchinchi ustuni. Yuqorida berilgan ustunlar bilan doim birga yuradi. Ma'lum obekt asosida boshqa obektni yaratish jarayoniga aytiladi. Bir klassning boshqa klassdan meros olishi yordamida amalga oshiriladi. Meros olingan obekt ota obektdagi xususiyatlarni tanlovga ko'ra meros oladi. Masalan, avtoulov bu ota obekt. Bu obekt yordamida yengil mashina, yuk mashinasi, poyga mashinasi kabi boshqa obektlarni yaratib olishimiz mumkin. Ota klassda bo'lgan 4 g'ildirak farzand klasslarda ham mavjud bo'ladi. Ya'ni poyga mashinasi, avtoulovdan g'ildiraklarni meros oladi.
Mavhumlik – Abtraksiya (Abstraction) Obekt bu real jism. Abstraksiya esa ushbu jismni reallikdan uzoq deb tassavur qilib, u haqida fikr yuritishga aytiladi. Abstraksiyaga fikrlar to'plami sifatida ham qarasa bo'ladi. Misol uchun telefon jiringlasa, telefonga qo'ng'iroq bo'layotganini bilamiz lekin uning ichida nima jarayon bo'layotganini bilmaymiz.
Enkapsulyatsiya (Encapsulation)
Ma'lumotlar va funksiyalarni bir komponent ichiga yig'ishga aytiladi. Buning uchun klasslardan foydalaniladi. Enkapsulatsiya tanlov asosida klassning ba'zi xususiyatlarini foydalanuvchidan yashirish imkonini beradi. Bunga misol qilib, ustidan maxsus modda bilan o'ralgan dorilarni keltirsak bo'ladi.
Ob’ektga yo‘naltirilgan dasturlash texnologiyalarining xususiyatlari Ob’ektga yo‘naltirilgan dasturlash atamasi dastlab 60-yillarning o‘rtalarida, Simula-67 dasturlash tilida paydo bo‘lgan. Ammo, bu til FORTRAN, ALGOL, PL/1 kabi tillarga nisbatan o‘zining imkoniyatlari past bo‘lganligi hamda shu davrda yechish talab qilingan masalalar uchun yetarli vositalarni taklif qila olmagani uchun dasturchilar orasida keng ommalasha olmadi. Keyinchalik ob’ektga yo‘naltirilgan dasturlash Smalltalk, Object Pascal, C++, Ada, hozirda esa C# kabi yuqori darajali dasturlash tillarining topologiyasi asosida rivojlandi va ommalashdi.
Ob’ektga yo‘naltirilgan dasturlash – bu dasturlashning shunday yangi yo‘nalishiki, dasturiy tizimda o‘zaro aloqada bo‘lgan ob’ektlar majmuasi sifatida qaraladi va xar bir ob’ektni ma’lum bir klassga mansub hamda xar bir klass qandaydir shajarani hosil qiladi deb hisoblanadi. Alohida olingan klass ma’lumotlar to‘plami va ular ustida bajariladigan amallarning to‘plami sifatida qaraladi. Bu klassning elementlariga faqat shu klassda aniqlangan amallar orqali murojaat qilish mumkin. Dasturdagi ma’lumotlar va ular ustida bajariladigan amallar o‘rtasidagi o‘zaro bog‘liqlik an’anaviy dasturlash tillariga nisbatan dasturiy tizimlarning ishonchliligini ta’minlaydi. Ob’ektga yo‘naltirilgan dasturlashning eng asosiy tushunchasi ob’ekt va klass hisoblanadi.
Ob’ekt. Oldimizda turgan olma mevasini dasturlash terminologiyasi orqali ko‘raylik. An’anaviy dasturlashda biz uni qismlarga bo‘lib o‘rganganmiz: S-olma po‘stining yuzi, J – olma mevasidagi sharbat hajmi, F – po‘st orasidagi meva og‘irligi, D-urug‘lar soni va x.k. Endi ana shu olmaga rassom ko‘zi bilan qaraylik. Olmaning rasmi bu meva emas, balki olma mevasining yassi tekisliklikdagi tasviridir. Uni har biri alohida va bir-biriga bog‘liq bo‘lmagan biror ma’lumotlar segmentida turgan bir nechta ma’lumotlardan iborat bo‘lgan ko‘rinishda abstraksiyalash mumkin emas. Olmaning komponentalari doimo birgalikda va bu komponentalar orasidagi o‘zaro aloqalarni saqlagan holda qaraladi.
Ob’ekt - biz yashayotgan olamdagi biror elementga hos bo‘lgan barcha ma’lumot va hulqlarni, ya’ni shu element ustida bajarish mumkin bo‘lgan xarakatlarni ifodalaydi hamda ma’lumotlarning tugal abstraksiyasidan iborat bo‘ladi. Bu ma’lumot va hulqlar ob’ektga yo‘naltirilgan dasturlash atamasida mos ravishda hususiyat va metod deb ataladi. Hususiyatni ob’ektning maydoni deb ham yuritiladi. Masalan, shashka ob’ekti rang, vertikal maydondagi o‘rni, gorizontal maydondagi o‘rni kabi maydonlarga, surish, urish, «damka» ga chiqish, shashka taxtasidan chetga olish kabi metodlarga ega bo‘ladi. Maydon va metodlar birgalikda ob’ektning a’zolari deyiladi. Ob’ektlarning strukturasi ularning o‘zaro aloqasini ifodalaydi. Ob’ektlar o‘zlarining barcha xarakteristika va hulqlarining o‘ziga hos tomonlarini birgalikda saqlaydi.
Klass. Har bir ob’ekt qandaydir bitta klassga taaluqli bo‘ladi. Klass – bu murakkab struktura bo‘lib, o‘z ichiga ma’lumotlarni, protsedura va funksiyalarni ifodalashdan tashqari, klasslarning vakili bo‘lmish ob’ektlar ustida bajarilishi mumkin bo‘lgan amallarni ham oladi. Klassdagi ma’lumotlar maydonlar, protsedura va funksiyalar esa metodlar deb ataladi. Klassning strukturasi tushunchasi ham muhim hisoblanadi. U tizim ichidagi vositalar boyligini namoyon qiladi. Ma’lumki, biror yaproqdagi fotosintez jarayonini o‘rganish uchun shu yaproqdagi bitta xujayrani ko‘rish yetarli, chunki, qolgan xujayralar ham o‘zini ana shu o‘rganilgan xujayra kabi tutadi. Biz xam biror klass, tip yoki bo‘limga mansub bo‘lgan ob’ektni ko‘rar ekanmiz, faraz qilishimiz mumkinki, uning hulqi ham shu tipdagi boshqa ob’ektlarniki kabi bo‘ladi.
Ob’ektga yo‘naltirilgan dasturlash bizning hulqimizga o‘xshab ketadigan dasturlash usulini ifodalaydi. U dasturlash tillarini ishlab chiqishdagi yangiliklarning tabiiy evolyusiyasi hisoblanadi. U barcha avvalgi dasturlash tillariga qaraganda strukturaliroq, ma’lumotlarni abstraktlashga urinishda abstraktliroq va modulliroqdir.
Ob’ektga yo‘naltirilgan dasturlash o‘zining uchta asosiy hususiyatlari bilan xarakterlanadi:
1. Inkapsulyasiya – yozuvlarni shu yozuvlarning maydonlari ustida amallar bajarish uchun mo‘ljallangan funksiyalar va protseduralar bilan birgalikda olib boradi. Inkapsulyasiya yashirish prinsipiga ham ega bo‘ladi. Buning ma’nosi shuki, ob’ekt ustida bajarish mumkin bo‘lgan xarakatlarni amalga oshirish vositalari shu ob’ektdan foydalanayotgan dasturchilar ko‘zidan yashirib qo‘yiladi. Dasturchi faqat shu ob’ektning ayrim metod va maydonlari bilangina ishlay oladi. Boshqacha aytganda, barcha maydon va metodlar ichki va tashqi guruhlarga bo‘linadi. Ob’ektning ichki a’zolari dasturchiga «ko‘rinmaydi» va ob’ektning hulqi va imkoniyatlarini aniqlaydi, tashqi a’zolari esa dasturchiga «ko‘rinib turadi» hamda ob’ektni boshqarish imkonini beradi. Ob’ektning dasturchiga ko‘rinib, ob’ektni boshqarishga yordam beradigan metod va maydonlari (hususiyatlari) ob’ektning interfeysi deb ataladi. Dasturchi ob’ekt bilan ishlash uchun uning interfeysini bilishi kifoY.
Masalan, yengil avtomobilni boshqarishni o‘rganish uchun uning matorining ishlash prinsipi, g‘ildiraklarning burilishini, tormoz mexanizmini o‘rganishning hojati yo‘q, rulni burash, pedal yoki uzatmalar qutisi richagini bosishni bilish yetarli.
2. Vorislik – yangi ob’ektni aniqlashga ehtiyoj paydo bo‘lganda oldindan ma’lum bo‘lgan ob’ektlardan foydalanish. Ob’ektlar o‘zlarini yaratishda ishtirok etgan ota ob’ektlarning xarakteristika va hulqlarini meros qilib olishlari mumkin. OYD konsepsiyasi yangi klasslarni mavjud klasslarga yangi maydonlar, hususiyatlar va metodlarni qo‘shish orqali yaratish imkonini ham beradi. Yangi klasslarni tashkil qilishning bunday usuli yuzaga keltirish deb ataladi. Bu holda yuzaga kelgan yangi klass o‘zining bazaviy ota klassiga hos bo‘lgan hususiyat va metodlarini meros oladi.
Masalan hayotdan misol qilib, hasharotlar klassini olish mumkin. U ikki guruhga bo‘linadi: qanotlilar va qanotsizlar. Qanotli hasharotlarga kapalaklar, pashshalari, parvonalar va x.k. lar kiradi. Shuning uchun, pashshalarni qaytadan qanotli deb ta’riflashning hojati yo‘q, u bu hususiyatni ota klassi bo‘lgan qanotli hasharotlar klassidan meros qilib oladi.
3. Polimorfizm– xarakatga biror nom berish hamda undan birgalikda ob’ektlar shajarasining quyi va yuqori qismlarida foydalanish. Bunda shajaraning har bir ob’ekti bu xarakatni o‘zi uchun hos bo‘lgan usul bilan bajaradi. Polimorfizm — bu turli klasslarga kirgan metodlar uchun bir hil nomlardan foydalanish imkoniyatidir. Polimorfizm konsepsiyasida ob’ektga nisbatan metod qo‘llanganida aynan ob’ektning klassiga mos keluvchi metoddan foydalanishni ta’minlaydi.
Object Pascal dasturlash tili ob’ektga yo‘naltirilgan dasturlashga hos bo‘lgan barcha vositalarni bera oladi: strukturalilik, modullik, katta abstraktlilik. Bu xarakteristikalarning hammasi xizmat ko‘rsatish uchun juda ham sodda, osongina boshqa vaziyatlarga moslashtirila oladigan, kuchliroq strukturaga ega bo‘lgan kodlarda o‘z aksini topadi.
Ob’ektga yo‘naltirilgan dasturlash uzoq yillar davomida an’anaviy, ya’ni standart hisoblangan dasturlashga nisbatan hos bo‘lgan tasavvurlarni bir chetga qo‘yishni talab qiladi. Natijada ob’ektga yo‘naltirilgan dasturlash juda ham sodda, ko‘rgazmaliligi yuqori bo‘lib, dasturiy ta’minot yaratishdagi ko‘plab muammolarni hal qilishning juda ajoyib vositasiga aylanadi.
Yuqorida aytilgan fikrlarni hisobga olsak, ob’ektga yo‘naltirilgan dasturlash texnologiyalari quyidagicha masalalarni hal qilishi mumkin:
1. An’anaviy dasturlash tillarida mavjud bo‘lgan kamchiliklarni bartaraf qilish;
2. An’anaviy dasturlash tillari yordamida yechib bo‘lmaydigan yoki juda katta qiyinchiliklar bilan yechilishi mumkin bo‘lgan masalalarni hal qilish;
3. Qayta ishlash mumkin bo‘lgan ma’lumotlar va ularning tiplari doirasi an’anaviy dasturlash tillariga nisbatan ancha keng;
4. Foydalanuvchilar uchun qulay bo‘lgan muloqot interfeysini yaratish;
5. Kiritilayotgan va chiqarilayotgan turli tipdagi ma’lumotlarni nazorat qilish;
6. Yangi tipdagi ma’lumotlar, klasslar va modullarni osongina tashkil etish va ma’lumotlarni nazorat qilish;
7. Multimedia va animatsion vositalaridan foydalanib, turli darajadagi tovushli va xarakatli effektlarni hosil qilish va qayta ishlash;
8. Ma’lumotlar bazasi va undagi ma’lumotlar ustida amallarni bajarish, SQL so‘rovnomalari yordamida ma’lumotlarni qidirib topish kabi masalalar juda osonlik bilan hal qilish;
9. OLE konteyneri yordamida WINDOWS muhiti uchun mo‘ljallangan ilovalardagi ob’eklar bilan ishlash;
10. Foydalanuvchilar uchun yaratilgan dasturiy ta’minotdan foydalanish uchun yordamchi ma’lumotnomalar tizimini yaratish;
11. Dasturiy ta’minotni boshqa kompyuterlarga ko‘chirish uchun o‘rnatuvchi disklarni yaratish;
12. Dastur matnini tashkil qilishda yuzaga kelishi mumkin bo‘lgan xatoliklar bilan ishlash masalasini hal qilish va x.k.
Ko‘rinib turibdiki, echilayotgan masalalarni an’anaviy dasturlash tillari yordamida echishda yuzaga kelishi mumkin bo‘lgan kattakon bo‘shliqni ob’ektga yo‘naltirilgan dasturlash texnologiyalari to‘ldiradi hamda zamonaviy dasturlashning ko‘plab talablariga javob beradi.
Foydalanilgan adabiyotlar va internet havolalari 1. http://uzhurriyat.uz/foydali_saytlar/akt_taraqqiyotga_xizmat_qiladi.mgr
2. Velling L., Tomson L. Razrabotka Web-prilojeniy s pomoshyu PHP i MySQL,3-ye izdaniye, 2008
3. Morisson M, Beyli L, Izuchayem PHP i MySQL ,2010,Moskva
4. A. Mazurkevich D, Yelovoy ,PHP nastolnaya kniga programmista,2010, Sankt-Peterburg
5. http://yiiframework.com
6. http://yiiframework.ru
7. http://getbootstrap.com
8. http://wrapbootstrap.com
9. http://ru.wikipedia.org/wiki/AJAX