Mavzu: Virtual metodlardan foydalanish

|
Mavzu: Virtual metodlardan foydalanish
|
Sana | 13.05.2024 | Hajmi | 17,2 Kb. | | #228375 |
Bog'liq Mavzu Virtual metodlardan foydalanish
5-amaliy
Mavzu:Virtual metodlardan foydalanish
Sinflar ichida metod turlarini meroslar (inheritance) yordamida virtual metodlardan foydalanish, yordam beruvchi, kodni qayta ishlash va sinflarni o'zgartirishning bir qismini abstraktlashtirish (abstraction) va kodni qayta ishlashni osonlashtirish uchun kerak bo'ladi. Bu, yana bir qat'iy tuzilgan dastur yaratishning asosiy qismi bo'lib, bir sinfni boshqa sinflardan xosil qilish, tur almashtirish va modifikatsiya qilishning qulay usuli sifatida ishlatiladi. Bu nimani ta'minlaydi? Quyidagi sabablarni ko'rib chiqamiz:
1. Modifikatsiya qilish: Virtual metodlar, boshqa sinflarda o'zgartirishlar qilishga imkoniyat beradi. Agar avvalgi sinfni o'zgartirishlar bilan boshqarib chiqmoqchi bo'lsangiz, virtual metodlar yordamida unga ega bo'lasiz.
2. O'zlashtirish: Virtual metodlar, tur sinflarda o'zgartirilgan ko'plab turli funksiyalarni yaratishga imkoniyat beradi. Har bir tur sinfi o'z ma'lumotlari va funktsionali bilan farq qiladi, ammo ularni asosiy sinfdan yaratgan metod turlari orqali qayta ishlaydi.
3. Kodni qayta ishlash va kodni qayta ishlashni osonlashtirish: Virtual metodlar, asosiy sinfda bazi boshlang'ich funktsionalarni taqdim etishga imkoniyat beradi, lekin har bir tur sinfi o'zgartirishlar qilishi mumkin. Bu o'zlashtirish va qayta ishlashda foydali bo'ladi.
4. Abstraktlashtirish: Virtual metodlar, sinflarning o'zini o'zlashtirishning o'zgarib turishlarini tashkil etishda yordam beradi. Virtual metodlar abstraktsiyani (abstraction) va o'zgarib turishni osonlashtirishga imkoniyat yaratish uchun asosiy qo'llaniladi.
Bularni tushunib chiqib, sinflar ichidagi virtual metodlardan foydalanish, sinflarni o'zgartirish va boshqa sinflardan o'sish uchun juda oson va qulay usul bo'lib ishlaydi. Sinflar ichidagi tur almashish va abstraktsiyani amalga oshirish uchun yaxshi amalga oshirilgan usuldir.
C# dasturlash tilida, sinflar ichida metod turlarini meroslar (inheritance) yordamida o'zgartirish uchun `virtual` va `override` kalit so'zlaridan foydalaniladi. Virtual metodlar, asosiy sinfda (base class) yaratiladi va ularga tur sinflarda (derived class) o'zgartirishlar kiritish mumkinligi taqdim etiladi.
Misolni ko'rib chiqaylik. Quyidagi misolni o'zingiz o'zgartirishingiz mumkin:
```csharp
using System;
// Asosiy sinf (base class)
class Avto
{
public virtual void Ma'lumotlariniKo'rish()
{
Console.WriteLine("Bu bir avto turkumi.");
}
}
// Tur sinfi (derived class)
class AvtoMashina : Avto
{
public override void Ma'lumotlariniKo'rish()
{
Console.WriteLine("Bu avto mashina turkumi.");
}
}
// Boshqa tur sinfi (derived class)
class AvtoMotosikl : Avto
{
public override void Ma'lumotlariniKo'rish()
{
Console.WriteLine("Bu avto motosikl turkumi.");
}
}
class Program
{
static void Main()
{
Avto avto = new Avto();
AvtoMashina avtoMashina = new AvtoMashina();
AvtoMotosikl avtoMotosikl = new AvtoMotosikl();
avto.Ma'lumotlariniKo'rish();
avtoMashina.Ma'lumotlariniKo'rish();
avtoMotosikl.Ma'lumotlariniKo'rish();
}
}
```
Dasturning natijasi:
```
Bu bir avto turkumi.
Bu avto mashina turkumi.
Bu avto motosikl turkumi.
```
Bu misolda, `Avto` sinfi virtual metodni (Ma'lumotlariniKo'rish) taqdim etadi. Tur sinflar (`AvtoMashina` va `AvtoMotosikl`) o'z o'zgarishlarni qo'shish uchun `override` kalit so'zidan foydalanishdi. Shunday qilib, har bir tur sinfi o'z ma'lumotlarini ko'rsatish imkoniyatiga ega bo'ladi.
Virtual metodlar, tur sinflarida foydalanish uchun o'zgarishlarga imkoniyat beradi. Buning natijasida, ba'zi sinflarda bir turdagi metodni o'zgartirish, boshqa sinflarda esa o'sha turdagi orqa tarafini saqlash imkoniyatini beradi.
Mavzuga oid masalalar
"Shaxs" va "Ishchi" sinflarini yaratish. "Shaxs" sinfi foydalanuvchining ismi va yoshi bilan, "Ishchi" sinfi "Ish" nomi va maosh miqdorini qo'shadi. Ishchilarning maoshi virtual metod orqali ko'rsatilsin.
"TransportVasita" sinfi yaratish, keyingi sinflarni "Avtomobil" va "Avtobus" kabi tur sinflari meros qilib olish uchun virtual metod orqali tayyorlang.
"Garderob" dasturini yaratish. Bu dasturda "Kiyim" va "Ko'ylak" sinflari yaratiladi. "Kiyim" sinfi kiyimning turi (masalan, palto yoki shlyapa) va rangi bilan, "Ko'ylak" sinfi esa "Ko'ylak"ning turi va razmeri bilan taniladi. Har bir sinfning o'ziga xos ma'lumotlarini ko'rsatuvchi virtual metodlar yaratish va ularni tur sinflar orqali ishlatish uchun bazi tur sinflari yaratish. Misol uchun, "Xalatlik" va "Sumka" tur sinflarini yaratishingiz mumkin.
"Hayvon" sinfi yaratish. Ushbu sinf hayvonning ismi, yoshi va turi bilan taqdim etiladi. "Hayvon" sinfini "Panda" va "Qo'yon" tur sinflari o'zgartiradi va har biri o'ziga xos sifatlarini (masalan, qo'yon yuvasi, panda bolalari) qo'shadigan metodlar orqali belgilaydi.
"Uchuvchi" sinfi yaratish. Uchuvchining ismi, manzili va boshqa ma'lumotlarini saqlab turuvchi sinfni yaratish. Uchuvchilarning turini belgilaydigan "Yuk" va "Yolovchi" tur sinflarini o'zgartirish va ularning o'ziga xos ma'lumotlarini qo'shadigan metodlar orqali turini belgilash.
|
| |