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



Download 4,03 Mb.
bet57/102
Sana23.02.2022
Hajmi4,03 Mb.
#136190
1   ...   53   54   55   56   57   58   59   60   ...   102
Bog'liq
Dasturlash asoslari majmua

Ҳусусият


Ҳусусиятлар синф майдонлари билан ишлашга рухсат олишни ташкил қилади. Одатда, ҳусусиятлар синфнинг ёпиқ майдонлари билан боғлиқ ва уларни ўқиш ва ўрнатиш усулларини белгилаб беради. Ҳусусият синтаксиси қуйидагича:
[ атрибутлар ] [ спецификаторлар ] тип ҳусусият_nomi
{
[ get ruxsat_kodi
[ set ruxsat_kodi ]
}
Ҳусусият ва усуллар учун спецификаторларнинг қийматлари ўхшаш. Кўпинча Ҳусусиятлар public спецификатори билан эълон қилинади. Рухсат коди операторлар блогидан иборат бўлиб, ўқиш (get) ёки ўрнатиш (set) ҳусусиятлари остида бажарилади. Айрим холларда ёки get қисми ёки set қисми тушириб қолдирилиши мумкин, аммо уларнинг хар иккисини хам бир вақтда тушириб қолдириб бўлмайди.
Агар set қисми тушириб қолдирилган бўлса, ҳусусият фақат ўқишга рухсат беради холос (read-only), агар get қисми тушириб қолдирилган бўлса, у холда ҳусусият фақат ёзиш учун рухсат беради (write-only).
Ҳусусиятларни тавсифлашга намуна:
public class Button: Control
{
private string caption; // ҳусусият билан боғланган ёпиқ майдон
public string Caption { // ҳусусият
get { // Ҳусусиятни ўқиш усули
return caption;
}
set { // Ҳусусиятни ўрнатиш усули
if (caption != value) {
caption = value;
}
}
}
...
}
Ёзиш усули одатда ўрнатилаётган қийматларнинг очиқлигини текшириш бўйича харакатлар бажаради, ўқиш усули эса масалан, майдонга мурожаатлар сонини ҳисоблагични ўз ичига толиши мумкин.
Қуйидаги дастурда ҳусусият худди синф майдони каби кўринади, масалан:
Button ok = new Button();
ok.Caption = "OK"; // Ҳусусиятни ўрнатиш усулига мурожаат
string s = ok.Caption; // Ҳусусиятни ўқиш усулига мурожаат
При обращении к свойству автоматически вызываются указанные в нем усуллар чтения и установки.
Ҳусусиятларни ўқиш ва ёзиш худди усулларга ўхшайди. get усули ўз ичига return операторини хам олиши керак. Set усулида ўрнатиладигоан қийматдан иборат value номли стандарт параметрдан фойдаланилади.
18.6-листингдаги Monster синфига шу синф ёпиқ майдтогнлари билан ишлашга имкон берувчи ҳусусият қўшамиз. Синф коди бир оз катталашиб кетсада, ундан амалда фойдаланиш осонлашади.
using System;
namespace ConsoleApplication1
{
class Monster
{ public Monster()
{
this.health = 100;
this.ammo = 100;
this.name = "Noname";
}


public Monster( string name ) : this()
{
this.name = name;
}


public Monster( int health, int ammo, string name )
{
this.health = health;
this.ammo = ammo;
this.name = name;
}


public int Health //Health ҳусусияти health майдони билан боғланган
{
get
{
return health;
}
set
{
if (value > 0) health = value;
else health = 0;
}
}


public int Ammo //Ammo ҳусусияти ammo майдони билан боғланган
{
get
{
return ammo;
}
set
{
if (value > 0) ammo = value;
else ammo = 0;
}
}


public string Name //Name ҳусусияти name майдони билан боғланган
{
get
{
return name;
}
}


public void Passport()
{
Console.WriteLine("Monster {0} \t health = {1} ammo = {2}",
name, health, ammo);
}


string name; // ёпиқ майдонлар
int health, ammo;
}
class Class1
{ static void Main()
{
Monster Masha = new Monster( 200, 200, "Masha" );
Masha.Passport();
--Masha.Health; // ҳусусиятлардан фойдаланиш
Masha.Ammo += 100; // ҳусусиятлардан фойдаланиш
Masha.Passport();
}
}
}
18.7-листинг. Monster синфи ҳусусиятлари билан
Дастурнинг натижаси қуйидагича:
Monster Masha health = 200 ammo = 200
Monster Masha health = 199 ammo = 300

Download 4,03 Mb.

Do'stlaringiz bilan baham:
1   ...   53   54   55   56   57   58   59   60   ...   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