11-dars – Obyekt va OYDning asosiy tushunchalari
Qadim o‘tgan zamonda, uzoq o‘lkalardagi qalin o‘rmon ichida bir qarg‘a yashagan ekan. U o‘z umridan juda mamnun, baxtli hayot kechirar ekan. Biroq bir kuni ko‘kda viqor bilan uchib ketayotgan oqqushni ko‘ribdi-yu, o‘ylab qolibdi: “U juda ham oppoq qush ekan. Shuning uchun juda chiroyli. Men esa qop-qoraman. Nazarimda, oqqush dunyodagi eng baxtli qush bo‘lsa kerak”. >>>>
Yaxshilik ketidan yaxshilik keladi
Kunlardan bir kun Xorazm yurtining podshohi mamlakatda eng chiroyli so‘z aytish bahsini o‘tkazmoqchi bo‘libdi. O‘sha kundan boshlab chiroyli so‘z, go‘zal so‘z degan gaplar odamlarning og‘zidan tushmay qolibdi. >>>>
Qalam va sichqon
23.09.2020 Bahrom 58 401 ko‘rishlar
Bir bor ekan, bir yo‘q ekan. Oddiygina bir qalam bo‘lgan ekan. Bir kuni uning egasi Valijon qalamini stol ustida unitib qoldiribdi. Paytdan foydalangan sichqoncha inidan chiqib qalamni tishlab olib qochmoqchi bo‘libdi. >>>>
Quyonning labi nega tirtiq?
02.05.2020 Bahrom 22 943 ko‘rishlar
Bir kun quyonlar baland bir qarag’ay tagiga to’planib o’zlaricha masla- hat qilishibdi. Ular kuyib-pishib, har qaysisi o’z taqdiridan nolibdi. >>>>
Tulki bilan chumoli
12.04.2020 Bahrom 39 588 ko‘rishlar
Tulki bilan Chumoli do’st bo’lib bug’doy sepishibdi. Ayyor Tulki har kuni qornim og’riyapti, boshim zirqirayapti degan bahona bilan dalaga chiqmabdi. Chumolining bir o’zi ertadan-kechgacha ishlab suv quyar, o’toq qilar ekan. Nihoyat, bug’doy pishibdi. >>>>
Samoviy poyga
07.04.2020 Bahrom 17 729 ko‘rishlar
Qadim-qadim zamonda Koinot atalmish bepoyon saroyda 9 ta aka-uka sayyora boʻlgan ekan. Quvnoq Merkuriyjon, yoqimtoy Veneraxon, hazilkash Yer, kulsa ham, yigʻlasa ham, uyalsa ham, darrov qip-qizarib ketadigan Mars, shirinlikxoʻr Yupiter, ozgʻin boʻlay deb hamisha halqa aylantirib yuradigan Saturn, yuvvoshgina Uran, Neptun bilan Plutonlar ahil-inoq yashagan ekanlar. >>>>
Chol bilan sichqon
04.04.2020 Bahrom 43 823 ko‘rishlar
Bor ekan-da, yo‘q ekan, och ekan-da, to‘q ekan. Qadim zamonda shu go‘zal Nanay tomonda bir chol-u kampir bor ekan. Bular baxt uchun tug‘ilgan ekan. Ammo choli tushmagur anqovroq ekan. >>>>
Qaysi qush baxtli?
01.04.2020 Bahrom 17 998 ko‘rishlar
Qadim o‘tgan zamonda, uzoq o‘lkalardagi qalin o‘rmon ichida bir qarg‘a yashagan ekan. U o‘z umridan juda mamnun, baxtli hayot kechirar ekan. Biroq bir kuni ko‘kda viqor bilan uchib ketayotgan oqqushni ko‘ribdi-yu, o‘ylab qolibdi: “U juda ham oppoq qush ekan. Shuning uchun juda chiroyli. Men esa qop-qoraman. Nazarimda, oqqush dunyodagi eng baxtli qush bo‘lsa kerak”. >>>>
Bahodir tabib
31.03.2020 Bahrom 24 851 ko‘rishlar
Bor ekan-u, yo‘q ekan, qadim-qadim zamonda, juda olis tomonda, baland tog‘lar etagidagi kichkina bir kulbada Bahodir ismli bola bobosi va buvisi bilan yashar ekan. Bahodir yashaydigan shaharda vabo kasali keng tarqalgan bo‘lib, otasi va onasi shu kasalga chalinib vafot etgan ekan. Buvasi uni erkalab, Bahodirtoy, deb chaqirarkan. Ammo bu baxtli kunlar ham uzoq davom etmabdi. Avvaliga buvisi, keyin buvasi qazo qilibdi. Bahodir bir o‘zi qolibdi.
Ikki to‘lqin
27.03.2020 27.03.2020 Bahrom 8 340 ko‘rishlar
Bir dengizda ikkita to‘lqin yasharkan. Birining nomi Katta to‘lqin, ikkinchisi Kichik to‘lqin ekan. Ular juda inoq bo‘lib, doim birga suzib yurisharkan.
Kichik to‘lqin juda ochiqko‘ngil ekan, baliqlar, shamol va boshqa to‘lqinlar bilan birga o‘ynarkan. Katta to‘lqin esa shiddatli va shafqatsiz bo‘lib, yo‘lida nima uchrasa, urilib, bosib, buzib o‘tib ketarkan. >>>>
11-dars – Obyekt va OYDning asosiy tushunchalari.
Obyekt – Obyektga yo’naltirilgan dasturlash(OYD) dasturlash texnologiyasining eng asosiy kalit tushunchasidir. Atrofga qarang, haqiqiy hayotdagi bir necha obyektlarni ko’rishingiz mumkin: stol, uy, qalam , motosikil , televizor va h.k.
Ularning barchasining albatta xususiyatlari va bajaradigan vazifalari (funksiyalari) bor. Masalan, Mushuk hususiyatlari: rangi, qorni to’qligi, yoshi, jinsi; funksiyalari: ovqat yeyishi, miyovlashi, yurishi, sichqon tutishi. Mashina xususiyatlari: tezligi, rangi, nomi, narxi; funksiyalari: yurishi, to’xtashi, oyna artgichlarining ishlashi, eshiklarning ochilib yopilishi va h.k. Bu kabi hayotiy misollarning hususiyatlari va funksiyalarini aniqlash OYD nuqtai nazaridan fikrlashning eng zo’r ko’rinishidir.
Bir daqiqaga to’xtang va hozirda atrofingizdagi biror narsalarni tahlil qiling. Har bir obyekt uchun o’zingizdan so’rang: “Bu obyektning qanday hususiyatlari bor?”, “Qanday vazifalarni bajaradi?” kabi. Va kuzatish natijalaringizni yozib oling, sezgan bo’lsangiz tuziladigan ro’yxat obyektning murakkabligiga qarab ko’payib boradi. Kompyuter indikatorining 2 ta xususiyati bor o’chiq va yoniq; funksiyalari esa yonish va o’chish. Bu barcha kuzatishlar OYD dunyosiga o’tkazish mumkin.
Dasturlashdagi obyekt.
Dasturlashdagi obyekt(bundan keyin oddiygina obyekt deb ketiladi) ham haqiqiy hayotdagi obyektlarga o’xshash: ular ham qandaydir xususiyatlar va bajaradigan funksiyalardan iborat bo’ladi. Obyektning xususiyatlari har xil dasturiy o’zgaruvchilardan iborat bo’ladi va ularning o’zgartirish uchun qandaydir funksiyalar bajariladi. Bunday funksiyalar bilan o’zgaruvchilarning holatini berkitish mumkin ya’ni aynan o’sha o’zgaruvchini tashqaridan o’zgartirish uchun albatta maxsus funksiyadan foydalanish kerak bo’ladi. Bu jarayon “Enkapsulatsiya” deb atalib, OYDning eng muxim tushunchalaridan biridir.
Mashinani tasavvur qiling,
Uni dasturlash obyekti sifatida modellashtiramiz:
Uning o’zgaruvchilari( hozirgi tezligi, qolgan benzini, va h.k) va uning funksiyalari(to’xtatish, tezlikni oshirish, rolni burish va h.k.). Bu yerda uning bakidagi benzini yurishi tufayli kamayib boradi demak uning qiymatining o’zgarishi 0 dan bakning sig’imigacha bo’ladi, yoki uning tezligi ham shu kabi aynan qaysidir funksiyalarning amalga oshirilishi orqali u ham 0 dan maksimal tezligigacha o’zgarishi mumkin. Bulardan tashqari mashinaning ba’zi hususiyatlari borki ular o’zgarmasligi mumkin, masalan rangi.
Demak, ko’rinib turipdiki mashina ham o’z navbatida bir necha mayda obyeklardan iborat bo’ladi. Va albatta ularni kodda yozganda ham alohida obyekt sifatida ifodalash kerak bu orqali nimalarga erishish mumkin:
Qismlilik: Har bir obyektga tegishli bo’lgan kodlar alohida-alohida, boshqa obyeklarga bog’liq bo’lmagan holda boshqarish imkoniyatiga ega bo’lamiz. Bu hammasi emas, tasavvur qiling mashina obyektini ifodalovchi kodni bo’lmasdan faqat bitta faylda ifodaladik; bu esa murakkabligiga qarab yuzlab xatto minglab qatorli kod bo’lishi mumkin. Undan biror narsani topib-o’zgartrish ancha mashaqqat bo’ladi.
Qayta foydalanish: Yana boshqa foydali tarafi biz bo’laklagan mashinaning detallarini boshqa obyektlarda ham ishlatishimiz mumkin. Masalan, 2 xil mashina ularning aynan bir xil qismlari bor, ana o’shalar uchun ikki marta alohida kod yozmasdan, bitta yozganimizni qayta ishlatishimiz mumkin.
Uzilib-ulanuvchanligi: buni tushunish uchun yuqoridagi misoldan foydalanamiz, aytaylik, mashinaning biror qismi ishlamayapti, xo’sh nima qilinadi? O’sha qismni ishlab turgan boshqa ehtiyot qismga almashtiramiz, yoki tuzatamiz. Mashinaning biror vinti buzilsa uni boshqa ishlab turgani bilan almashtirasiz yoki tuzatamiz lekin mashinani butunligicha yahlit almashtirmaymiz.
OYDning asosiy tushunchalari
Obyekga yo’naltirilgan dasturlash yoki OYD – haqiqiy hayotiylikka asoslangan dasturlash usulidir. Yana protsedurali dasturlash tillari (masalan, Paskal, Basic, Fortan) ham mavjud. OYD ning undan asosiy farqi shundaki, OYD asosan obyektlarga asoslangan holda ishlasa, protsedurali dasturlash tillari esa asosan funksiyalarga asoslangan bo’ladi ya’ni bu usuldagi dasturlashda har bitta buyruqlar qadamma-qadam bajarilib boriladi masalan: faylni och, raqamni o’qi, 4 ga ko’paytir va ekranga chiqar.
OYD ni tashkil etuvchilari quydagilar:
- Object – Obyekt
- Class – Sinf
- Inheritance – Meros olish
- Polymorphism – Ko’p formalik
- Abstraction – Mavhumlik
- Encapsulation – Enkapsulyatsiya (Kapsula ichiga joylamoq)
Object – Obyekt klass turidagi o’zgaruvchi. Obyekt bu klass bilan farqli tushuncha hisoblanadi. Objekt biz yozgan klassimizdagi har xil qoidalarga bo’ysunadigan ma’lumot bo’lib, u tezkor hotirada saqlanadi, klass esa qattiq diskda saqlanadi. Har bir yasalgan Obyect tezkor xotiraning ma’lum bir xonachalariga joylashadi. Hayotiy bir misol, masalan, ko’p qavatli binoni tezkor xotira deb qarasak. Unda istiqomat qiluvchi insonlar esa unda saqlanuvchi obyektlar bo’lib. Agar biz Insonning hususiyatlari, bajaradigan ishlari va hokazo xususiyatlari haqidagi bilimlarni qog’ozga tushursak bu qoralamani klass deb qaralishi mumkin garchi u texnik usulda yozilmagan bo’lsa ham. Biz ana o’sha qoralamani klassimizda kompyuter tushunadigan tilga keltiramiz.
Class – OYDning marzkazi hisoblanadi va u har xil kodlar, ma’lumotlar va shu ma’lumotlar qay tarzda o’zgarishini ifodalovchi xususiyatlar saqlanadi. Boshqacharoq qilib aytadigan bo’lsak hayotiy obyektlarning qanday faoliyat yuritishi, nimalardan iborat ekanligi, qanday xususiyatlarga ega ekanligini tavsiflovchi kichik bir hujjat sifatida qarash ham mumkin. Javada hamma narsa Klass ichida sodir bo’ladi. Klass o’z ichiga o’zgaruvchilar va metodlar(funksiyalar) va qiymati o’zgarmaydigan konstantalarni oladi. Yana shuni ham ta’kidlash kerakki, har bitta klass bitta o’zgaruvchi turi bo’lib ham xizmat qiladi. Huddi Integer, String yoki boshqa turlar kabi har bir klass ham ma’lum bir tur sifatida qaralishi mumkin.
Javada klasslar quydagilardan tashkil topadi:
- data member – o’zgaruvchilar
- method – funksiya
- constructor – kontruktor (obyekt dastlabki holatida ishlaydi)
- block – blok (<> qavslar orasi blok hisoblanadi)
- class and interface – klass va interfeys
Javada o’zgaruvchilar(data member)
O’zgaruvchilar – obyektlarimizni o’zgaruvchi sifatida ham qarashimiz mumkin bunda uning qiymatlari o’zgarishi mumkin. Masalan Inson klassimizda insonning yurish tezligi o’zgaradi bunda uning tezligi qandaydir sonlarda o’zgaradi masalan yur() metodidan yugur() metodiga o’tganda yoki to’xta() metodiga o’tganda uning tezligi o’zgaradi. Shu va shunga o’xshash obyektlar o’zgaruvchilar deb yuritiladi.
public class Inson < int tezlik=0; public void yur()< tezlik=5; >public void yugur() < tezlik=15; >public void yur() < tezlik=0; >>
“instance variable” – o’zgaruvchi namuna olish kompilyatsiya vaqtida xotiradan joy olmaydi. O’zgaruvchilarimizni obyekt sifatida qaraganimizda runtime (dastur ish payti) paytida tezkor xotiradan joy oladi.
Javada funksiyalar (Method)
Funksiyalar – obyektimiz nimalar qila olishini izohlaydi, masalan, Inson haqida yozgan qoralamamizda insonni yura olishi va boshqa harakatlarini keltirganmiz. Aynan ana o’sha qila oladigan ishlarini Metodlar orqali ifodalaymiz. Masalan quyida yur() metodi keltirilgan.
Funksiyalarning imkoniyatlari
- Kodni qayta ishlash
- Kodni optimallashtirish (muvofiqlashtirish)
Obyekt va klass’ga misol
Bu misolda student klassidan ikkita obyekt yaratildi va insertRecord funksiyasi orqali boshlang’ich qiymatlarni o’zlashtirildi. displayInformation funksiyasidan foydalanib ekranda qimatlarni chop etiladi.
class Student < int rollno; String name; void insertRecord(int r, String n)< //method rollno=r; name=n; >void displayInformation()//method public static void main(String args[]) < Student s1=new Student(); Student s2=new Student(); s1.insertRecord(111,"Karan"); s2.insertRecord(222,"Aryan"); s1.displayInformation(); s2.displayInformation(); >>
Meros olish (Inheritance)
Ma’lum obyekt asosida boshqa obyektni yaratish jarayoniga aytiladi. Bunda obyektning barcha xususiyatlarini meros qilib oladi ya’ni private(shaxsiy) bo’lmagan o’zgaruvchilari funksiyalari konstantalarini bemalol foydalanish. Meros olishdan dastur ishchi vaqtida Ko’p formalikdan foydalaniladi.
Ko’p formalik (Polymorphism)
OYDning uchinchi ustuni. Yuqorida berilgan ustunlar bilan doim birga yuradi. Ma’lum obyekt asosida boshqa obyektni yaratish jarayoniga aytiladi. Bir klassning boshqa klassdan meros olishi yordamida amalga oshiriladi. Meros olingan obyekt ota obyektdagi xususiyatlarni tanlovga ko’ra meros oladi. Masalan, avtoulov bu ota obyekt. Bu obyekt yordamida yengil mashina, yuk mashinasi, poyga mashinasi kabi boshqa obyektlarni 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)
Obyekt 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.
Manba: oddiy.blogspot.com, normatov.com ‘dan foydalanildi