I. A. Karimov Bugungi kunda insonni uning axborotni qayta ishlash bo'yicha imkoniyatlarini kuchaytiruvchi zamonaviy texnologiyalar bilan qurollantirish axborotlashtirish sanoatini jadal rivojlantirishni talab etu


Download 221.49 Kb.
bet6/8
Sana24.12.2022
Hajmi221.49 Kb.
#1053715
1   2   3   4   5   6   7   8
Bog'liq
Kurs ishiNozima

public void Hisoblash()
{
Console.WriteLine("Men funksiyani hisoblayman!");
}
}
class Chiziqli:Funksiya
{
public void Hisoblash()
{
Console.WriteLine("Men chiziqli funksiyani hisoblayman!");
}
}
class Kvadrat:Funksiya
{
public void Hisoblash()
{
Console.WriteLine("Men kvadrat funksiyani hisoblayman!");
}
}
class Kub:Funksiya
{
public void Hisoblash()
{
Console.WriteLine("Men kub funksiyani hisoblayman!");
}
}
Yuqorida yangi Funksiya nomli sinf hosil qildik va unda bir nechta funksiyalarni yangi Hisoblash() metodi orqali e’lon qildik. Endi ularga hisoblovchi funksiyalarni qo’shaylik:
using System.Collections;
using System.IO;
using System;
namespace Poli 

class Program 

static void Main(string[] args) 

Funksiya nnn=new Funksiya();
nnn.Hisoblash();
Chiziqli nnn1=new Chiziqli(4);
nnn1.Hisoblash();
Kvadrat nnn2=new Kvadrat(3);
nnn2.Hisoblash();
Kub nnn3=new Kub(5);
nnn3.Hisoblash();
Console.ReadKey();

}
class Funksiya
{
public void Hisoblash()
{
Console.WriteLine("Men funksiyani hisoblayman!");
}
}
class Chiziqli:Funksiya
{
double x_;
double y;
public Chiziqli(double x)
{
x_=x;
}
public void Hisoblash()
{
y=34*x_-23;
Console.WriteLine("Men chiziqli funksiyani hisoblayman! " +
"y=34x-23="+y);
}
}
class Kvadrat:Funksiya
{
double x_;
double y;
public Kvadrat(double x)
{
x_=x;
}
public void Hisoblash()
{
y=12*Math.Pow(x_,2)+23*x_-121;
Console.WriteLine("Men kvadrat funksiyani hisoblayman! " +
"y=12x*x+23x-121="+y);
}
}
class Kub:Funksiya
{
double x_;
double y;
public Kub(double x)
{
x_=x;
}
public void Hisoblash()
{
y=2*Math.Pow(x_,3)-23*Math.Pow(x_,2)+12*x_+4;
Console.WriteLine("Men kub funksiyani hisoblayman! " +
"y=2x*x*x-23x*x+12x+4="+y);
}
}
}
Natija:

Yuqorida voris sinflarni program sinfi bilan bog’ladik va maydonlar, metodlar, konstruktorlar yordamida hisoblashlarni amalga oshirdik. Endi bir o’ylab ko’ring, siz 40 ta funksiya sinflarini yaratmoqchisiz. Har birini hisoblash bir-biridan boshqacha bo’lsin. U sinflarning har biriga Hisoblash() metodini e’lon qilib chiqish qanchalar to’g’ri, ya’ni siz chalkashib ketishingiz mumkin. Ba’zi sinflarda Hisoblash() metodi qolib ketishi yoki uni xato yozib ketishingiz mumkin. Umumiy qilib aytganda ishonchliligi yuqori emas. Bunga qanday yechim topish mumkin? Bunda overriding bizga yordamlashadi. Metod overridingni biz ikki xil usulda ko’rib o’tamiz.
Dasturlashda mujassamlikka ega bo'lmagan obyektlarni tavsiflash uchun abstrakt sinflar kirirtilgan. Abstrakt sinf oddiy sinfga o'xshaydi. Ular ham xuddi oddiy sinf kabi maydonlar, xossalar, metodlar va konstruktorlarga ega bo’lishi mumkin. Oddiy sinfdan farqi shuki, abstrakt sinflarni e’lon qilishda abstract kalit so'zi ishlatiladi.
Abstrakt sinf a'zolari. Odatdagi xossalar va metodlardan tashqari, abstrakt sinflar abstract kalit so'z yordamida aniqlangan va hech qanday funksionallikka ega bo'lmagan abstrakt sinf a'zolariga ega bo'lishi mumkin. Masalan:

  • Metodlar;

  • Xossalar;

  • Indeksatorlar;

  • Xodisalar.

Abastrakt sinf a’zolar private modifikatoriga ega bo’la olmaydi. Shu bilan birga, voris sinf asosiy abstrakt sinfda mavjud bo'lgan barcha abstrakt sinf a’zolarini qayta aniqlashi va tavsiflashi zarurdir. Voris sinflarda bunday sinf a’zolarini override modifikatori bilan e’lon qilinadi. Mavhum (abstract) sinflarni ichida abstrakt metodlar e’lon qilib, metod override amalga oshirish mumkin. Abstrakt sinflarni ichida abstrakt metodlarni e’lon qilamiz va ushbu abstrakt sinfdan olingan avlod sinf o’zida ushbu abstrakt metodni override qilishi shart bo’lib qoladi. Quyida uni ko’ramiz:

Download 221.49 Kb.

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




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