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


// Sinfning yopiq a'zolariga kirish meros qilib berilmaydi


Download 116.94 Kb.
bet72/100
Sana02.01.2022
Hajmi116.94 Kb.
#200801
1   ...   68   69   70   71   72   73   74   75   ...   100
Bog'liq
dasturiy injinering

// Sinfning yopiq a'zolariga kirish meros qilib berilmaydi.

// Ushbu kod namunasi kompilyatsiya qilinmaydi.

using System;

// Ikki o'lchovli ob'ektlar uchun sinf.

class TwoDShape {

double Width; // endi bu yopiq o'zgaruvchidir

double Height; // endi bu yopiq o'zgaruvchidir

public void ShowDimO {

Console.WriteLine("Ширина и высота равны " +

Width + " и " + Height);

}

}

// Triangle sinfi TwoDShape sinfidan olingan.

class Triangle : TwoDShape {

public string Style; // uchburchak turi

// Uchburchakning maydonini qaytarish.

public double Area() {

return Width * Height /2; // Xatolik, yopiq sinf a'zosiga kirish taqiqlanadi.

}

// Uchburchak turini ko'rsatish.

public void ShowStyleO {

Console.WriteLine("Треугольник " + Style);

}

}

Area() metodi Width va Height o'zgaruvchilariga murojaat qila olmagani uchun Triangle sinf kompilyatsiya qilinmaydi. Width va Height o'zgaruvchilari yopiq bo'lgani uchun, ular faqat sinfning boshqa a'zolari uchun mavjud, ammo natijaviy sinflari a'zolari uchun mavjud emas.

Bir qarashda, asosiy sinfning xususiy a'zolariga natijaviy sinfdan kirishni cheklash qiyin kechadi, chunki u ko'p hollarda ushbu sinfning xususiy a'zolaridan foydalanish imkoniyatini bermaydi. Lekin, aslida, bunday emas. C# tilida ushbu cheklovni bartaraf etish uchun turli usullar mavjud. Ulardan biri keyingi bobda ko'rib chiqiladigan himoyalangan (protected) sinf a'zolari, ikkinchisi esa yopiq ma'lumotlarga kirish uchun ochiq xususiyatlardan foydalanishdir.

Avvalgi bobda aytib o'tilganidek, xususiyat o`zgaruvchi nusxasiga kirishni boshqarish imkonini beradi. Misol uchun, xususiyatdan foydalanib, o'zgaruvchining qiymatiga kirish uchun cheklovlarni kiritishingiz yoki uni faqat o'qish uchun ishlatishingiz mumkin. Shunday qilib, agar xususiyat ochiq bo`lsa, lekin uning asosiy o'zgaruvchi yopiq deb e'lon qilingan bo`lsa, bu xususiyatni natijaviy sinfida ishlatilishi mumkin, ammo uning asosiy yopiq o'zgaruvchiga bevosita kirish imkoni bo'lmaydi.


Download 116.94 Kb.

Do'stlaringiz bilan baham:
1   ...   68   69   70   71   72   73   74   75   ...   100




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