Obyektga yunaltirilgan dasturlash tillari va vazifalari lab
1-laboratoriya ish ish Mavzu : Obyektga yunaltirilgan dasturlash tillari va vazifalari 1- Vorislik . 2- Inkapsulyatsiya . 3- Polimorfizim . 4- Konstruktor . 5- Descruktor . 6- Metodlar . 7- Sinf parametrlari class metodlar . Vorislik —bu hosilavey sinfning mavjud asosiy harakteristikalarini merosga olish hususyatidir . Inkapsulyatsiya – bu tizimda ishlaydigan ma’lumotlar va usulllarni sinfda birlashtirishga va foydalanuvchidan amalga oshirish tafselotlarini yashirishga imkon beruvchi tizimning xususyati . Ma’lumotlarni manepulyatsiya qiladigan va kodni birlashtiradigan ,shuningdik birinchi navbatdan ma’lumotlarga to’g’ridan to’g’ri tashqi kirishdan noto’g’ri ishlatishdan ximoya qiluvchi tamoyil . Polimorfezim – bu umumiy muloqot tili . Bir xil enterfeysli obyektlardan oyektning turi va ichki tuzilishi haqida ma’lumotsiz foydalanish xususyatidir . Ikki yoke undan ortiq uxshash ,lekin biroz boshqacha muammolarni yechishda bir xil usul nomidan foydalanadigan mexanezm . Konstruktir – bu bir xil sinfdagi obkekt yaratilganda avtomatik ravishta chaqiriladigan sinf metodining maxsus turi Konstruktorlar ,odatda standart foydalanuvchi tomonidan berilgan qiymatga ega bo’lgan sinf a’zolarining o’zgaruvchilarini ishga tshurish yoke ishlayotgan sinf uchun ,zarur bo’lagan konfeguratsiya bosqichlarini bajarish uchun ishlatiladi . Destruktor — bu sinfning biror obyekti uchun ajratilgan xotira obyekt yuqotilganidan so’ng bo’shatilishi lozimdir . Sinflarning maxsus komponentalari destruktorlar bu,vazefani aftomatik bajarish imkonini yaratadi . Metod – bu sinfga tegishli funksiyalardir ,sinfga tegishli funksiyalrni aniqlash uchun ikki yul mavjud . 1) ichki sinf 2) sinfdan tashqari . Sinf –bu bizning dasturimizda foydalanishimiz mumkin bo’lgan foydalanuvchi belgilaydigan ma’lumot turi va u obyekt tuzuvchisi yoke obketlarni yaratish uchun reja sifatida ishlaydi .
2-laboratoriya ish ish Mavzu : Abstraktlash Abstrakt sinflar. Abstrakt sinf ta’rifi. Hech bo’lmasa bitta sof (bo’sh) virtual funksiyaga ega bo’lgan sinf abstrakt sinf deyiladi.Quyidagi e’longa ega bo’lgan komponentali funksiya sof virtual funksiya deyiladi: virtual <tur> <funksiya_nomi> (<formal_parametrlar_ro’yxati>) = 0; Bu yozuvda « = 0» konstruksiya «sof spesifikator» deyiladi. Sof virtual funksiya ta’rifiga misol: virtual void fpure (void) = 0; Bu atamadan biz OYD ning shunday yondashuvi, degan xulosaga kelishimiz mumkin, bu yerda obyektlar birinchi o'rinda turadi. Bu mavzular biroz murakkabroq tuyilishi mumkin, lekin to’g’ri yo’nalishga tushib olinsa o’rganish oson. Obyektlar bir-biri bilan muloqot qilishlari, o'zaro ta'sir o'tkazishlari, o'zlari o'rtasida biror narsani uzatishi mumkin. Obyekt nimani anglatadi? Buni kompyuter o'yinida ko'rish mumkin. Katta, murakkab o'yinlar va dasturlar odatda obyektga yo'naltirilgan uslubda yoziladi. Bu dasturda mavjud bo'lgan hamma narsa obyekt. Agar siz qandaydir personaj olsangiz, u biror joyga (chapga yoki o'ngga) borishi, hujum qilishi, olib kelishi, qurishi mumkin. Bu personaj qila oladigan barcha vazifalar metodlar deyiladi. Bundan tashqari, OYD obyektlari xossalarga ega. Xossalar qaysi obyekt haqidagi savolga javob beradi. Bizning obyektimiz yashil rangda, qo'llari mavjud, oyoqlari bor, qandaydir o’lchamga ega va boshqalar. Hammasi "obekt qanday " degan savolga javob beradi, bu obyektning xossalari bilan bog'liq. C ++ da strukturalar haqida eslatma . C da strukturalar faqat ma'lumotlarni saqlashi mumkin va ular bilan bog'liq metodlar bo'lmasligi mumkin. C++ da sinflarni loyihalashdan so'ng (class kalit so'zidan foydalangan holda) Bjarne Stroustrup struktura (C dan meros bo'lib o'tgan) bog'liq metodlarga ega bo'lishi kerakligi haqida o'ylab ko'rdi. Biroz o'ylanib, nima kerakligini hal qildi. Shuning uchun, yuqoridagi dasturlarda biz sinf o'rniga struct kalit so'zidan foydalanishimiz mumkin va hamma narsa ishlaydi!
1-Topshiriq 14 . Viloyat nomli sinf yarating , tarkebida ikki xil konstruktir bo’lsin . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #include <iostream> using namespace std; class viloyat { private: string m_nom; int m_yil; float m_hudud; public: viloyat() { m_nom="samaraqand"; m_yil=1800; m_hudud=4.600; } viloyat(string nom,int yil,float hudud) { m_nom=nom; m_yil=yil; m_hudud=hudud; } string getNOm() { return m_nom; } }; int main() { viloyat tuman; cout<<tuman.getNOm()<<endl; return 0; }
Dasturni ishga tshurgandan so’ngi nateja quydagiga teng bo’ladi .
3-laboratoriya ish ish Mavzu :Modullik Diagramma - bu elementlar to'plamining grafik tasviri bo'lib, ular ko'pincha graf uchlari (yo'llar) va yo'llar (aloqa) ning bog'langan grafi sifatida tasvirlanadi. UML tili 13 turdagi diagramalarni o'z ichiga oladi, ular orasida birinchi navbatda sinflar diagrammasi bo'lib, biz bu mavzuda shuni muhokama qilamiz. Sinf diagrammalarida sinflar, interfeyslar va ularning aloqalari ko'rsatilgan. Bunday sxemalar ko'pincha ob'ektga yo'naltirilgan tizimlarni modellashtirish uchun ishlatiladi. Ular tizimni statik tarzda ifodalash uchun mo'ljallangan. UML elementlarining ko'pchiligi elementning eng muhim jihatlarini vizual tarzda taqdim etishni ta'minlaydigan o'ziga xos va sodda grafik belgiga ega. Sinf diagrammasini tuzish. Tizim va uning chegaralari uchun funksional talablar aniqlangandan so'ng, sinflar diagrammasini tuzish uchun predmet sohani tahlil qilish kerak. Sinf diagrammasi bo'yicha qisqacha nazariy ma'lumot. Sinf diagrammasi tizimdagi sinflarning turlarini va ular orasidagi turlicha statik munosabatlarni belgilaydi. Sinf diagrammalarida sinflar orasidagi munosabatlarga taalluqli sinf atributlari, sinf metodlari va cheklovlar tasvirlangan. Sinf diagrammasining turi va talqini, asosan, nuqtai nazarga (abstraktsiya darajasi) bog'liq: sinflar predmet sohaning mohiyatini namoyish etadi (tahlil jarayonida) yoki dasturiy ta'minot elementlarini (loyihalash va amalga oshirish jarayonlarida) ifodalashi mumkin. 2-Topshiriq 14- Viloyat nomli sinf yarating. Tarkibida 2 ta metod, 3 ta xossa bo’lsin. Viloyat hokimini getHokim() metodi orqali jo’nating 1 2 3 4 5 6 7 8 9 10 11 12 #include <iostream> using namespace std; class viloyat { private: string m_nom; float m_hudud; string m_hokim; public: viloyat()