Obyektga yo'naltirilgan dasturlash. C++ OOP
Mavzu: Obyektga yo'naltirilgan dasturlash . C++ OOP. Reja: 1.Kirish. 2. C ++ OOP nima? (Object Oriented Programming = OOP) 3. C++ sinflar va ob’ektlar 4. C++ Method (Sinf/Class) 5. C++ Enkapsulatsiya. 6. C++ Polimorfizm. 7. C++ Merosxurlik 9.Xulosa. 10.Foydalanilgan adabiyotlar. KIRISH
Obyekt nima? Obyekt Obyektga yo'naltirilgan dasturlash(OYD) texnologiyasining eng asosiy kalit tushunchasidir. Atrofga qarang, haqiqiy hayotdagi bir necha obyektlarni ko'rishingiz mumkin: stol, uy, it, mushuk, televizor va h.k. Ularning barchasining albatta hususiyatlari va bajaradigan vazifalari (funktsiyalari) bor. Masalan, Mushuk hususiyatlari: rangi, qorni to'qligi, yoshi, jinsi; funktsiyalari: ovqat yeyishi, myovlashi, yurishi, sichqon tutishi. Mashina, hususiyatlari: tezligi, rangi, nomi, narxi; funktsiyalari: yurishi, to'xtashi, oyna artgichlarining ishlashi, eshiklarning ochilib yopilishi v.h.k. Bir daqiqaga to'xtang va hozirda atrofingizdagi biror narsalarni analiz 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 hususiyati bor o'chiq va yoniq; funktsiyalari esa yonish va o'chish. Bu barcha kuzatishlar OYD dunyosiga o'tkazish mumkin. Dasturlashdagi obyekt(bundan keyin oddiygina obyekt deb ketiladi) ham haqiqiy hayotdagi obyektlarga o'xshash: Ular ham qandaydir hususiyatlar va bajaradigan funktsiyalardan iborat bo'ladi. Obyektning hususiyatlari har xil dasturiy o'zgaruvchilardan iborat bo'ladi va ularning o'zgartirish uchun qandaydir funktsiyalar bajariladi. Bunday funktsiyalar bilan o'zgaruvchilarning holatini berkitish mumkin ya'ni aynan o'sha o'zgaruvchini tashqaridan o'zgartirish uchun albatta maxsus funktsiyadan foydalanish kerak bo'ladi. Bu jarayon " Enkapsulatsiya " deb atalib, OYDning eng muxim tushunchalaradian biridir. Hech e'tibor berganmisiz dorilarda ham shu termin ishalitladi ya'ni kapsula(ustidan maxsus modda bilan o'ralgan dorilar), buni misolni Enkapsulatsiya jarayoni esda yaxshi qolishi va tushunarli bo'lishi uchun keltirdim. Mashinani tasavvur qiling, Uni dasturlash obyekit sifatida modellashtiramiz: Uning o'zgaruvchilari( hozirgi tezligi, qolgan benzini, va h.k) va uning funktsiyalari(to'xtatish, tezlikni oshirish, rulni burish, va h.k.). Bu yerda uning bakidagi benzini yurishi tufayli kamayib boradi demak uning qiymatining o'zgarishi 0dan bakning sig'imigacha bo'ladi, yoki uning tezligi ham shu kabi aynan qaysidir funktsiyalarning amalga oshirilishi orqali u ham 0 dan maksimal tezligigacha o'zgarishi mumkin. Mavzu : Obyektga yo'na ltirilgan dasturlash . C++ OOP C ++ OOP nima? (Object Oriented Programming = OOP)
OOP (O bj e ct O ri e nt e d P r og ra mm i n g - Oby e k t ga y o' na lt i r i l ga n dast ur la sh ) - bu bi ro n bi r ma qs ad ga y o' na lt i ri lg an dast ur la sh de ga n ma' no ni a ng lat adi . P r ot s e du ra vi y da st u rl as h - b u ma' lu mo t la rg a i sh l ov be r ad i g an pr ot se d ur al ar y ok i f unk t si ya la rn i y oz i s h , o b' e k t g a yo 'n al t i ri lg an da st u rl as h e sa ma 'l um ot va f unk t si ya la rn i o' z i ch i ga o lg an o b' e k t l ar ni y ar at i sh h aq i da . Ob' e k t g a y o' na lt i r i l ga n da st u rl as h p ro t se ss ua l da st u rl as h d an b i r qat or afz al li k l ar ga e ga : O O P t e z r o q v a b a j a r i l i s h i o s o n r o q O O P d a s t u r l a r n i n g a n i q t u z i l i s h i n i t a ' m i n l a y d i O O P C + + k o d i n i D R Y " D o n ' t R e p e a t Y o u r s e l f " s a q l a s h g a y o r d a m b e r a d i v a k o d n i s a q l a s h , o ' z g a r t i r i s h v a d i s k r a s k a d r o v k a q i l i s h n i o s o n l a s h t i r a d i . O O P k o d n i k a m v a i s h l a b c h i q a r i s h v a q t i n i q i s q a r t i r g a n h o l d a t o ' l i q q a y t a i s h l a t i l a d i g a n i l o v a l a r n i y a r a t i s h g a i m k o n b e r a d i . C + + - b u o b' e k t g a y o' na lt i r i l ga n da st u rl as h t i l i . C + + d ast u rl as h t i li da h amm a nar sa u ni ng x u su si ya t la ri v a u su ll ar i bi la n bi r q at o rd a si nf lla r va ob ye k t la r bi lan b og 'l i q . Sinf - bu bizning dasturimizda foydalanishimiz mumkin bo'lgan foydalanuvchi belgilaydigan ma'lumot turi va u ob'ekt tuzuvchisi yoki ob'ektlarni yaratish uchun "reja" sifatida ishlaydi. Sinf yarating. Si nf ya ra t i s h uc h u n cl a s s k ali t so 'z dan fo yd al an i n g. " My Cl a ss " No mli si n f ya ra t a mi z . class MyClass { // class public : // ochiqlik siyosati int myNum; // Attribute (int tipiga tegishli) string myString; // Attribute (string tipiga tegishli) }; Misolni tushuntirish. c l a s s K a l i t s o ' z M y C l a s s d e b a t a l g a n b i r s i n f y a r a t i s h u c h u n i s h l a t i l a d i . p u b l i c K a l i t s o ' z b i r b o ' l i b k i r i s h b e l g i s i i f o d a l a y d i . B u d e g a n i c l a s s d a n t a s h q a r i d a h a m a t t r i b u t l a r d a n f o y d a l a n i s h m u m k i n .
S i n f i c h i d a b u t u n s o n m y N u m v a s a t r o ' z g a r u v c h i s i m a v j u d m y S t r i n g . O ' z g a r u v c h i l a r s i n f i c h i d a e ' l o n q i l i n g a n i d a , u l a r a t r i b u t l a r d e b n o m l a n a d i . N i h o y a t , s i n f t a ' r i f i n i n u q t a - v e r g u l b i l a n t u g a t i n g ; . Ob'ektni yaratish. C + + d ast ur la sh t i li da bi z si nf y ar at di k , My Cl a ss no ml i c las s ya ra t di k , sh u ni ng u ch un bu nd an fo yd al an i b o by e k t y ar at ami z. O b' e k t ni ya ra t i s h uc h u n My Cl a ss si n f no mi ni , so 'n gr a ob 'e k t no mi ni k o' rs at i n g. # include <iostream> # include <string> using namespace std; class MyClass { public : int myNum; string myString; }; int main () { MyClass myObj; myObj.myNum = 15 ; myObj.myString = "Some text" ; cout << myObj.myNum << "\n" ; cout << myObj.myString; return 0 ; } 15 Some text Bir nechta ob'ektlar. Si z bi t t a si nf ni n g bi r ne ch t a ob 'e k t la ri ni ya ra t i sh i n gi z mu mk i n: Me t h od si n fg a t e gi s h li fu nk s i y al ar di r. Si nf ga t e gi sh l i fu nk si y al ar ni ani ql ash u ch un i k k i y o' l m avj ud . I c h k i s i n f t a ' r i f i
S i n f d a n t a s h q a r i t a ' r i f Si nf t ash qa ri da f un k si ya ni ani ql ash uc h u n s i nf i ch i da e 'l on qi li sh k e r ak va k e yi n u ni si n fd an t a sh q ar i d a e ' lo n q i li sh k e rak . :: si n f n om i ni k o' rs at i sh uc h u n i sh lat i lad i . # include <iostream> using namespace std; class MyClass { public : void myMethod (); }; void MyClass::myMethod () { cout << "Hello World!" ; } int main () { MyClass myObj; myObj. myMethod (); return 0 ; } Hello World! Parametrlar. Si z sh u ni ng de k pa ra me t rl ar ni q o' sh i sh i ng i z m umk i n : # include <iostream> using namespace std;