Monday, March 3, 2014

Obyektga yo`naltirilgan dasturlash tillari (OOP)

Obyektga yo`naltirilgan dasturlash tillari (OOP)

Obyektlar orqali ma`lumotlarni qayta ishlash va amallar bajarishni ta`minlashda foydalaniladigan dasturlash tillari Obyektga yo`naltirilgan dasturlash tillaridir. OOP ham rivojlanish evaziga ehtiyoj sababli yuzaga kelgan.  OOP ning imkoniyatlari ba`zida bizning tasavvurimizdan ham kattaroq. Unda istalgan tipdagi obyektlarni qayta ishlashning imkoni bor. OOP dasturlarini tasavvur qilish tizimli dasturlarni tuza oladigan dasturchilar uchun qiyin emas, OOP - tizimli dasturlarning majmui. Istalgan dasturni tahlil qilsak - hech bir dastur yo`qki unda tizimli dasturlash tillaridagi amallar bajarilmasa, OOP da ham turli xil tiplar bo`lgani bilan ular ham oddiy tiplardan tuzilgan to`plamlardir, ular o`rtasida amal bajarganda ham shundoq o`zini emas ichidagi a`zolari o`rtasida amallar bajariladi. A`zolari esa o`sha biz bilgan oddiy tiplar hisoblanadi.
OOP ning 3 prinspi:
1. Inkaptsulyatsiya (incapsulation)(Class a`zolarining xavfsizligini ta`minlash)
2. Nasl olish(Abstraction-Inheritance)(Avlod classda ajdod classning xususiyatlaridan foydalanish)
3. Polimorfizm
Savol: Object nima? Object(obyekt) - xotirada saqlangan ma`lumotning e`lon qilingan nomi(o`zgaruvchisi).  O`zgaruvchi - ma`lumotni biror bir nom bilan e`lon qilish.
Savol: Struct nima? Struct(struktura) -obyekt tegishli bo`lgan to`plamning nomi. Bu to`plamni tip(type) deb ataladi. Struct tipidagi obyektda ichidagi barcha o`zgaruvchilar tashqaridan ko`rinib turadi.
Savol: Class nima? Class ham xuddi Struct kabi type, lekin undagi obyektning ba`zi xususiyatlari bor, ular bu obyektning tanasini yashirib turadi va boshqalar.. Shu sababli ham struct dan odatda juda kam foydalaniladi. Chunki Struct - bu public(ommaviy, ochiq, oshkora obyekt). Bundan tashqari Class lar kod yozishda ham muhim ahamiyatga ega. Dasturchi dastur tuzganda odatda har bir missiya uchun bir funksiya ochadi va funksiya nomini shu missiyaga mos qilib nomlaydi. Kodning matnini shu funksiyalarda yozadi. Funksiyani o`zini esa Class da yoziladi. Demak Classda kod matnini emas funksiya(method-metod), property(xususiyat) hamda o`zgaruvchilar yoziladi, funksiyaning ichida esa kodning matni yoziladi.(adashtirmaslik kerak). Ma`lum bir guruhga kiradigan missiyalar, mantiqlar to`plami bitta Class da tashkil etiladi va shu class nomini ham mantiqdan kelib chiqib nom beriladi. Agar bu class mantiqiy amallarni bajarish uchun emas, faqat to`plamning tipi(type) uchun yaratib vaqtincha shu tipdagi ma`lumotni saqlab turish uchun yaratilgan bo`lsa (ya`ni undan maqsad faqat ma`lumot saqlash va biror manzilga yo`naltirish) demak unda funksiyaning keragi yo`q.  

Masalan:


Bu class Tom obyektining qiymatini saqlash uchun e`lon qilingan. Tom-mushuk bir obyekt bo`lsa uning ismi va yoshini saqlab turadigan class. Demak bu to`plam yoki bir tip ki, unda mushuk haqida ma`lumotlar saqlanadi. Bu klass tipidagi obyektlar ko`pligi bizga bir nechta mushukning ma`lumotlari saqlanayotganligini bildiradi. Oydinlashadiki. biz OOP dasturlash tillarida o`zimiz xohlagancha tip e`lon qilib foydalana olishimiz mumkin ekan. Biz OOP orqali juda katta imkoniyatlarga erishamiz. Class lar birgalikda kutubxona(library-biblioteka) fayllarini tashkil etadi, bu kutubxonalar ham biror katta dasturlar tizimini tashkil etadi. Masalan: Windows OS ham kutubxonalardan tashkil topgan.

Public va Private nima? Class a`zolarining xavfsizligini ta`minlash(inkapsulyatsiya)-incapsulation) prinspining maxsus so`zlari. Public, Protected, Private turlari mavjud.
Public(umumiy) - ushbu elementni class tashqarisidan ko`rish, o`zgartirish mumkin yoki yo`qligini bildiradi
Protected(himoyalangan) - ushbu element shu class avlodlari(nasl olinganda) ichida va shu class ning ichida ko`rinishi, murojaat qilish mumkinligi va qiymatini o`zgartira olish huquqini beradi
Private(maxfiy) - mazkur element o`zi joylashgan class ichidagina ko`rinishi va qiymatlarini o`zgartira olinishi hamda murojaat huquqini beradi.
Bu bizga nima uchun zarur? Tasavvur qilishga oson bo`lishi uchun kompyuter klaviaturasidan foydalanamiz. Klavishlar public elementlar, uning ichki qismidagi sxemalar esa private. Bizga faqat foydalanishimiz kerak bo`lgan elementlar ko`rsatib qo`yilgan, qolgani esa biz uchun muhim emas va mavhum. Protectedni esa xotirada qolishi uchun foydalangan vaqtimizda tushuntirib o`tamiz.

No comments:

Post a Comment