Олий таълим ўқув режаларидаги фанларга



Download 4,03 Mb.
bet61/102
Sana23.02.2022
Hajmi4,03 Mb.
#136190
1   ...   57   58   59   60   61   62   63   64   ...   102
Bog'liq
Dasturlash asoslari majmua

Классдаги амаллар.


Класс — бу тўлақонли маълумот типи бўлгани учун, дастурчи улар устида ўзининг ҳусусий амалларини белгилаши мумкин. Биз илгари амалларни қайта юклаш билан танишган эдик. Масалан, арифметик типлар учун " + " – қўшиш, сатрлар учун эса – бирлаштиришни англатади. Амалларни асосан класслар учун қайта юклаш мумкин.

Унар амаллар


Класс таркибида қуйидагича унар амалларни аниқлаш мумкин:
+ - ! ~ ++ -- true false
Унар амаллар қуйидагича эълон қилинади:
тип operator унар_амал ( параметр )
Унар амал сарлавҳаларига мисоллар:
public static int operator ++( MyObject m )
public static MyObject operator --( MyObject m )
public static bool operator true( MyObject m )
Амалга узатиладиган параметр ўзи аниқланган класс типидаги бўлиб, қуйидагиларни қайтариши лозим:

  • +, -, ! ва ~ амаллари учун иҳтиёрий типдаги катталикни;

  • ++ ва – амаллари учун улар аниқланган класс типидаги миқдорни;

  • true ва false амаллари учун bool типидаги катталик.

Амаллар уларга узатилаётган параметрларнинг қийматларини ўзгартириб юбормаслиги лозим. Ўзлари аниқланган класс типидаги қийматларни қайтаручи амаллар шу класснинг янги объектини яратиши ва улар устида белгиланган амалларни бажариши ва натижасини узатиши лозим.
Эслатма
Префикс ва постфиксли инкрементлар фарқланмайди.
Инкремант амалини қайта юклашга намуна (монстр қийматининг бирга ортиши унинг саломатлигини яхшилайди деб қабул қиламиз):
class Monster {
public static Monster operator ++( Monster m )
{
Monster temp = new Monster();
temp.health = m.health + 1;
return temp;
}

}


Monster vasia = new Monster();


++vasia; vasia++;

Бинар амаллар


Классларда қуйидагича бинар амалларни аниқлаш мумкин:
+ - * / % & | ^ << >> == != > < >= <=
Бинар амаллар қуйидаги схема остида аниқланади:
тип operator бинар_амал (параметр1, параметр2)
Бинар амал сарлавҳасига мисоллар:
public static MyObject operator + ( MyObject m1, MyObject m2 )
public static bool operator == ( MyObject m1, MyObject m2 )
амалга узатиладиган параметрлардан ҳеч бўлмаганда биттаси ўзи аниқланган класс типидаги бўлиши шарт.
== ва !=, > ва <, >= ва <= амаллари фақат операторлар жуфтдилкри учун аниқланади ва одатда мантиқий типдаги қийматларни қайтаради.
Мураккаб қиймат бериш амалларини (масалан, += ) аниқлаш шарт эмас. Бундай холларда аввал қўшиш, сўнгра қиймат бериш амали бажарилади.
Monster класси учун б инар амал атвсифига мисоллар:
class Monster {
public static Monster operator +( Monster m, int k )
{ Monster temp = new Monster();
temp.ammo = m.ammo + k;
return temp;
}
public static Monster operator +( int k, Monster m )
{ Monster temp = new Monster();
temp.ammo = m.ammo + k;
return temp;
}

}

Monster vasia = new Monster();
Monster masha = vasia + 10;
Monster petya = 5 + masha;


  1. Download 4,03 Mb.

    Do'stlaringiz bilan baham:
1   ...   57   58   59   60   61   62   63   64   ...   102




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