Matematik injiniring yo’nalishi 20


Abstrakt berilganlar va metodlar



Download 148,81 Kb.
bet6/8
Sana13.12.2022
Hajmi148,81 Kb.
#884994
1   2   3   4   5   6   7   8
Bog'liq
Kurs ishi dasturlash asoslari3

2. Abstrakt berilganlar va metodlar
Abstrakt metod - bu tanasi mavjud bo'lmagan, hamda faqatgina abstrakt sinfda ishlovchi metod hisoblanadi. Uni tanasi esa, voris sinfda taqdim etiladi.
MISOL:
using System;

// abstrakt class 'Hayvonlar'
public abstract class Hayvolar
{
// abstrakt metod 'Ovoz()'
public abstract void Ovoz();
}

// class 'Hayvolar' dan olingan voris class 'Sigir'
public class Sigir : Hayvolar
{
// Qayta ishlangan 'Ovoz()' metodi
public override void Ovoz()
{
Console.WriteLine("Moo");
}
}

class Program
{
static void Main(string[] args)
{
// Sigir obyektini yaratish
Sigir sigir_obj = new Sigir();
// abstrakt metodni chaqirish
sigir_obj.Ovoz();
}
}
Natija:Moo
Berilgan mavhum usulda tana yo'q va u faqat mavhum sinfda ko'rsatilgan. Override kalit so'zi barcha mavhum bo'lmagan sinflarda mavhum usulni amalga oshirish uchun ishlatilishi kerak. Mavhum usul bekor qilinganidan keyin endi mavhum bo'lmagan sinfda.
Bu sinf boshqa sinfdan olinishi mumkin, keyinchalik u bir xil mavhum usulni bekor qilishi mumkin. Mavhum funksiyalarga funksionallikni taklif qilish uchun mavhum sinfdan kichik sinf yaratish/olish kerak.
Mavhum usullar ko'pincha ikki yoki undan ortiq kichik sinflar bir xil vazifani boshqacha bajarishi kutilganda aytiladi. Subklasslar interfeysni amalga oshirish uchun tez-tez zarur bo'lganligi sababli, mavhum superklass mavhum usullarning o'zgarishlarini amalga oshirish uchun uni pastki sinflarga qoldirib, bir nechta interfeys usullarini taqdim etishi mumkin.
C# tilidagi mavhum usullar va abstrakt sinflar uchun qoidalar quyidagicha:

  1. Agar usul mavhum, tashqi yoki qisman bo'lmasa, u mavhum modifikator yordamida mavhum belgilanishi kerak; aks holda kompilyatsiya vaqtida xatolik yuzaga keladi. Usul tanani e'lon qilishi kerak, chunki u mavhum, tashqi yoki qisman emas.

public class Demo


{
void k1();
}
2. Agar sinfda mavhum usul bo'lsa, u abstract kalit so'zi bilan shunday e'lon qilinishi kerak; aks holda kompilyatsiya vaqtida xatolik yuzaga keladi.

Demo.k1() usuli mavhum bo'lsa-da, u mavhum bo'lmagan Demo sinfiga kiritilgan:

public class Demo
{
public abstract void k1();
}

To'g'ri sintaksis:


public abstract class Demo
{
public abstract void k1();
}
Abstrakt sinfning kichik sinflari barcha mavhum usullarni bekor qilishi yoki sinf mavhum deb e'lon qilinishi kerak; aks holda kompilyatsiya vaqtida quyidagi xatolik yuzaga keladi:
namespace AbstractDemo
{
public abstract class Demo
{
public abstract void k1();
public abstract void k2();
}

public class Sample : Demo


{
public override void k1()
{
Console.WriteLine("k1 method");
}
}
}
Sinf abstraktini quyida ko'rsatilganidek e'lon qilamiz:
public abstract class Sample : Demo
{
public override void k1()
{
Console.WriteLine("k1 method");
}
}
Quyida ko'rsatilgandek barcha mavhum usullarni bekor qilamiz:
public class Sample : Demo
{
public override void k1()
{
Console.WriteLine("k1 method");
}
public override void k2()
{
Console.WriteLine("k2 method");
}
}

C# da mavhum usullardan foydalanishni ko'rsatish uchun demo:


using System;
namespace Abstractmethod
{
public abstract class Plan
{
protected double rate;
public abstract void getRate();
public void calculation(int units)
{
Console.Write("BILL AMOUNT FOR " + units + " UNITS is: USD.");
Console.WriteLine(rate * units);
}
}
class CommercialPlan : Plan
{
public override void getRate()
{
rate = 5.00;
}
}
class DomesticlPlan : Plan
{
public override void getRate()
{
rate = 2.50;
}
}
class Program
{
static void Main(string[] args)
{
Plan p;
Console.WriteLine("COMMERCIAL CONNECTION");
p = new CommercialPlan();
p.getRate();
p.calculation(250);
Console.WriteLine("DOMESTIC CONNECTION");
p = new DomesticlPlan();
p.getRate();
p.calculation(150);
Console.ReadKey();
}
}}
Dasturning chiqishi quyida ko'rsatilgandek bo'ladi:
COMMERCIAL CONNECTION
BILL AMOUNT FOR 250 UNITS is: USD.1250
DOMESTIC CONNECTION
BILL AMOUNT FOR 150 UNITS is: USD.375



Download 148,81 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish