C# Kirish ma’lumoti. (Sinf/Class)

Kirish modifikatorlari. C# da to'rtta kirish modifikatorlari mavjud: public, private, protected va internal. Sinf a’zolariga kirish va ularni boshqarishda public va private kirish modifikatorlari ishlatiladi. Protected modifikator faqat vorislik bilan bog'liq hollarda qo'llaniladi. Internal modifikator esa asosan yig'ish uchun mo'ljallangan o'rnatilgan dastur yoki kutubxonani anglatadi. Agar sinf a'zosi public spetsifikatsiyasi bilan belgilangan bo'lsa, unga dasturdagi istalgan boshqa koddan, shu jumladan boshqa sinflarda belgilangan metodlardan kirish mumkin bo'ladi. Agar sinf a'zosi private spetsifikatsiyasi bilan belgilangan bo'lsa, unga faqat shu sinfning boshqa a'zolari kirishi mumkin. Shuning uchun, boshqa sinflarning metodlari ushbu sinfning yopiq a'zosiga (private) kirish huquqiga ega emas. Agar kirish spetsifikatorlaridan hech biri ko'rsatilmagan bo'lsa, sinf a'zosi yopiq hisoblanadi. Shuning uchun, yopiq sinf a'zolarini yaratishda, ular uchun private spetsifikatsiyasi talab qilinmaydi.Kirish spetsifikatsiyasi alohida a'zo turi e’lonining qolgan qismidan oldin keladi. Bu shuni anglatadiki, sinf a'zolari e’loni aynan shu bilan boshlanishi kerak. Quyida tegishli misollar keltirilgan.

namespace UzbekDevs
{
   class MyClass
   {
       private int alpha; // yopiq a'zo
       int beta; // standart yopiq a'zo
       public int gamma; //ochiq a'zo
       // alpha va beta uchun kirish metodlarini yozamiz.
       public void SetAlpha(int a)
       {
           alpha = a;
       }
       public int GetAlpha()
       {
           return alpha;  
       }
       public void SetBeta (int a)
       {
           beta = a;
       }
       public int GetBeta()
       {
           return beta;
       }
   }

    class AccessDemo
   {
       static void Main(string[] args)
       {
           MyClass myClass = new MyClass();
           myClass.SetAlpha(100);
           myClass.SetBeta(10);
           Console.WriteLine("myclass alpha=" + myClass.GetAlpha());
           Console.WriteLine("myclass beta=" + myClass.GetBeta());
           myClass.gamma = 50;
           Console.WriteLine(myClass.gamma);
           Console.ReadKey();
       }
   }
}

Dastur natijasi:

myclass alpha=100 myclass beta=10 50

Yopiq va ochiq kirishni tashkil etish. Yopiq va ochiq foydalanishni to'g'ri tashkil etish obyektga yo'naltirilgan dasturlashda eng muhim tushuncha hisoblanadi. Buning uchun qat'iy qoidalar mavjud bo'lmasada, quyida keltirilgan ba'zi umumiy tamoyillar mavjud.

  • Faqat sinfda ishlatiladigan a'zolar yopiq bo'lishi kerak.
  • Ma’lum bir qiymatlar oralig'iga to'g'ri keladigan ma'lumotlar yopiq bo'lishi kerak va ochiq metodlardan foydalangan holda kirishda sonlarni ko'rsatish oralig'ida tekshirish amalga oshirilishi kerak.
  • Agar a'zoning o'zgarishi sinfdan tashqaridagi a’zolarning o’zgarishiga olib kelsa, ya'ni, ob'ektning boshqa jihatlariga ta'sir qilsa, a'zo yopiq bo'lishi kerak.
  • Obyektga zarar yetkazishi mumkin bo'lgan a'zolar yopiq bo'lishi kerak. Ushbu a'zolarga ochiq metodlar yordamida kirish kerak, shunda ulardan noto'g'ri foydalanish oldi olinadi.
  • Yopiq ma'lumot qiymatlarini olish va o'rnatish metodlari ochiq bo'lishi kerak.
  • O'zgaruvchilar yopiq bo'lishi uchun hech qanday sabab bo'lmasa, ularni ochiq qilishga ruxsat etiladi.