1-Mavzu 1-Mavzu Reja: Klass a’zolariga ruxsatni boshqarish


public FailSoftArray(int size) {


Download 116.94 Kb.
bet64/100
Sana02.01.2022
Hajmi116.94 Kb.
#200801
1   ...   60   61   62   63   64   65   66   67   ...   100
Bog'liq
dasturiy injinering

public FailSoftArray(int size) {

a = new int[size];

Length = size;

}

// FailSoftArray sinfidagi massiv uchun int tipidagi indeksator.

public int this[int index] {

// get aksessori

get {

if(ok(index)) {

ErrFlag = false;

return a[index];

} else {

ErrFlag = true;

return 0;

}

}

// set aksessori.

set {

if(ok(index)) {

a[index] = value;

ErrFlag = false;

}

else ErrFlag = true;

}

}

/* FailSoftArray sinfidagi massiv uchun yana bir indeksator.

U o'zining argumentini eng yaqin butun indeksga aylantiradi. */

public int this[double idx] {

// get aksessori.

get {

int index;

// Eng yaqin butunga aylantirish.

if( (idx - (int) idx) < 0.5) index = (int) idx;

else, index = (int) idx + 1;

if(ok(index)) {

ErrFlag = false;

return a[index];

} else {

ErrFlag = true;

return 0;

}

}

// set aksessori.

set {

int index;

// Eng yaqin butunga aylantirish.

if( (idx - (int) idx) < 0.5) index = (int) idx;

else index = (int) idx + 1;

if(ok(index)) {

a[index] = value;

ErrFlag = false;

}

else ErrFlag = true;

}

}

// Indeks belgilangan chegaralarda bo'lsa, true mantiqiy qiymatini qaytarish.

private bool ok(int index) {

if(index >= 0 & index < Length) return true;

return false;

}

}

// Xatoliklardan xoli massivdan foydalanish.

class FSDemo {

static void Main() {

FailSoftArray fs = new FailSoftArrayE) ;

// fs massivi qiymatlarini to`ldirish.

for(int i=0; i < fs.Length; i++)

fs[i] = i;

// Endi massivga murojaat qilish uchun

//int va double tipli indekslardan foydalaning.

Console.WriteLine("fs[l]: " + fs[l]);

Console.WriteLine("fs[2]: " + fs[2]);

Console.WriteLine("fs[l.l]: " + fs[l.l]);

Console.WriteLine("fs[1.6]: " + fs[1.6]);

}

}

Ushbu dasturni bajarilganda quyidagi natijalar olinadi.

fs[1] : 1

fs[2]: 2

fs[1.1] : 1

fs[1.6] : 2

Yuqoridagi natija shuni ko'rsatadiki, double tipli indekslar eng yaqin butun qiymatga yaxlitlanadi. Xususan, 1.1 indeksi 1ga yaxlitlandi va 1.6 indeksi 2ga.

Yuqorida keltirilgan dastur indeksatorlarni qayta yuklash mumkinligini aniq ko'rsatib turibdi, ammo amalda u kamdan-kam hollarda qo'llaniladi. Odatda, buning uchun qayta yuklangan indeksatorlardan sinf ob'ektini muayyan indeks sifatida ishlatishda foydalaniladi.

3. Avtomatik ravishda amalga oshiriladigan xususiyatlar.

Avtomatik ravishda amalga oshiriladigan xususiyatlar.


Sinf a'zosining yana bir turi xususiyatdir. Odatda, xususiyat maydonni unga kirish usullari bilan birlashtiradi. Yuqorida keltirilgan misollarda ko'rsatilgandek, maydon ko'pincha ob'ekt foydalanuvchilari uchun mavjud bo'lish uchun yaratiladi, ammo bu sohada ruxsat etilgan operatsiyalar ustidan nazoratni saqlab qolish maqsadga muvofiqdir, masalan, ushbu sohaga tayinlangan qiymatlar oralig'ini cheklash. Bu maqsadga albatta yopiq o'zgaruvchining kirish usullari bilan erishish mumkin, ammo xususiyat bu maqsadga erishishning yanada mukammal va samaraliroq yo'lni ta'minlaydi.


Download 116.94 Kb.

Do'stlaringiz bilan baham:
1   ...   60   61   62   63   64   65   66   67   ...   100




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