|
Matematika va kompyuter ilmlari fakulteti amaliy matimatika kafedrasi dasturlash asoslari fanidan
|
bet | 1/11 | Sana | 17.05.2024 | Hajmi | 114,28 Kb. | | #239885 |
Bog'liq KURS IWI
QARSHI DAVLAT UNIVERSITETI
MATEMATIKA VA KOMPYUTER ILMLARI FAKULTETI
AMALIY MATIMATIKA KAFEDRASI
DASTURLASH ASOSLARI FANIDAN
K U R S I SH I
Mavzu: C# DASTURLASH TILIDA POLIMORFIZMNI QO’LLASH
023-42– guruh talabasi
Tayyorladi XAYDAROVA SUMBULA Tekshirdi:(Ilmiy rahbar) SHOVALIYEV BAHODIR
Qarshi – 2024
MUNDARIJA
MUNDARIJA 2
2
Kirish 3
I.BOB . Polimorfizm. 5
1.1. Virtual metodlar va ularning ustunligi 5
1.2 . Yangi a’zolar bilan tayanch sinf a’zolarini yashirish 12
II.bob. Statik va Dinamik polimorfizm 15
2.1. Statik polimorfizm. 15
XULOSA 33
FOYDALANILGAN ADABIYOTLAR 34
Kirish
Hozirgi kunda C# dasturlash tili yuqori bosqichli dasturlash tillari ichida eng samarali dasturlash tillaridan hisoblanadi. C# dasturlash tilida dastur tuzish uchun Visual Studio .NET muhitidan foydalanamiz. C# dasturlash tili obektga mo’ljallangan dasturlash tili hisoblanadi.
C# ning .NET Framework bilan aloqasi: Garchi C# - dasturlash tili sifatida alohida o‘rganilishi mumkin bo‘lsa-da, lekin uni o‘zi ishlaydigan .NET Framework muhiti bilan o‘zaro aloqasini ko‘rib chiqish afzalroqdir. Chunki birinchidan, C# dastlab Microsoft kompaniyasi tomonidan .NET Framework kodini yaratish uchun ishlab chiqilgan, ikkinchidan, .NET Framework C# tili tomonidan foydalaniladigan kutubxonani aniqlab beradi. Modomiki, ular bunday chambarchas bog‘liq ekan, .NET Frameworkning umumiy konsepsiyasini va uning C# uchun ahamiyatini tushunish muhimdir. .NET Framework – bu platforma mustaqil izohlarni rivojlantirish va bajarishni qo‘llabquvvatlovchi muhitni talqin qilsa bo‘ladi. U dasturlashning turli tillari izohlarida birgalikda ishlash imkonini beradi, shuningdek, Windows uchun umumiy dasturlash modellari va dasturlar yaratilishini ta’minlaydi. Ta’kidlash kerakki, .NET Framework Windows platformasi tomonidan chegaralanmagan va ushbu platforma uchun yozilgan dasturlar kelajakda boshqa platformaga o‘tkazilishi mumkin. C# tili .NET Frameworkning ikki muhim tashkil etuvchilaridan foydalanadi: Birinchisi – bu tilning ijro etish muhitiga bog‘liq bo‘lmagan (Common Language Runtime - CLR), dastur ijrosini boshqaruvchi va .NET Framework texnologiyasining bir qismi hisoblanuvchi 60 tizim, dasturlarga o‘tish imkonini beradi, bir qancha tillardan foydalanish bilan dasturlashni qo‘llab-quvvatlaydi va ma’lumotlarni uzatish xavfsizligini ta’minlaydi. Ikkinchisi – tashkil etuvchi dasturlarga ijro muhitiga kirish imkonini beruvchi .NET sinflar kutubxonasidir, masalan, berilganlarni kiritish/chiqarish uchun foydalaniladi. Agar siz dasturlashni o‘rganishni endigina boshlagan bo‘lsangiz, unda sizga sinf tushunchasi notanish bo‘lishi mumkin. Sinflar dasturlarni tashkillashtirishga yordam beruvchi obyektga yo‘naltirilgan konstruksiya hisoblanadi. Hozircha dastur xossalari, .NET sinflarining muayyan kutubxonasi bilan chegaralangan bo‘lsa, u .NET ijro muhiti qo‘llab-quvvatlanadigan barcha joyda ishlatilishi mumkin. .NET kodi bajarilishini tilga bog‘liq bo‘lmagan bajarilish muhiti (Common Language Runtime - CLR) boshqaradi. C# dasturini kompilyatsiya qilganda, biz bajariladigan kodni emas, Microsoftning oraliq tili deb ataluvchi (Microsoft Intermediate Language, MSIL) maxsus psevdokoddan tashkil topgan faylni olamiz. MSIL tili protsessorga bog‘liq bo‘lmagan ko‘rsatmalar to‘plamini aniqlaydi, ya’ni mohiyati bo‘yicha, MSIL assembler tilini aniqlaydi. Oraliq Microsoft tili mazmunan Java bayt kodiga o‘xshash bo‘ladi, ammo ularning orasida farq bor.
Yuqoridagi misol Tayanch sinfini va undan voris olingan ikkita Voris1 va Voris2 sinfni yaratadi. Tayanch sinfi Funksiya() virtual metodini e'lon qiladi, bu ikkala voris sinfda ham bekor qilinadi. Main() metodida Tayanch, Voris1 va Voris2 turidagi obyektlar e'lon qilinadi. Tayanch mos havola turidagi baza o‘zgaruvchisi e'lon qilinadi. Har bir obyekt turiga havola baza o‘zgaruvchisiga tayinlanadi va keyin Funksiya() metodini chaqirish uchun ishlatiladi. Yuqoridagi kodning natijasidan ko‘rinib turibdiki, bajarilayotgan Funksiya() metodining versiyasi baza o‘zgaruvchisining sinf turiga qarab emas, balki ushbu metodga havola qilingan obyekt turiga qarab aniqlanadi.
|
| |