C# Obyekt va Sinflar

C# tili to'liq obyektga yo'naltirilgan til hisoblanadi. Bu shuni anglatadiki, C# da dasturni o'zaro bog'langan va o'zaro ta'sir etuvchi obyektlar sifatida ifodalash mumkin.

Obyektning tavsifi - bu sinf obyekt esa sinfning namunasini ifodalaydi. Quyidagi o'xshashlikni ham keltirish mumkin. Hammamizda o’z ismiga, yoshiga va boshqa xususiyatlarga ega bo'lgan odam haqida ba'zi tasavvurlar mavjud. Ya'ni, ba'zi bir shablon - bu shablonni sinf deb atash mumkin. Amalda ushbu shablon boshqacha bo'lishi mumkin, masalan, ba'zi odamlar bir xil ismga ega, boshqalari boshqa ismga ega. Va haqiqiy shaxs (aslida ushbu sinfning namunasi) ushbu sinfning obyektini ifodalaydi.

Kelishuv bo’yicha konsol dastur loyihasi bitta sinfga ega – bu Program sinfi unda dastur bajarilishi boshlanadi.

Aslida, sinf foydalanuvchi tomonidan aniqlanadigan yangi turni ifodalaydi. Sinf class kalit so'zi yordamida aniqlanadi:

Sinf uchun uning bazaviy sinflarini (ajdodlari) va sinfning turli xil xususiyat (atribut) larini belgilaydigan bir qator shart bo’lmagan atributlar va xususiyatlarni belgilash mumkin:

[atributlar ] [spetsifikatorlar ] class sinf_nomi :[ ajdodlari ]

{sinf_tanasi}

Sinf qayerda aniqlanadi ?

Sinf nomlar fazosi ichida, nomlar fazosi tashqarisida, boshqa sinf ichida aniqlanishi mumkin.

Odatda, sinflar alohida fayllarga joylashtiriladi. Ammo biz yangi sinfni Program sinfi joylashgan faylga joylashtiramiz. Ya'ni, Program.cs fayli quyidagicha ko'rinishga ega bo’ladi:

namespace UzbekDevs
{
   class Bino
   {

   }
    
   internal class Program
   {
       static void Main(string[] args)
       {
          
       }
   }
}

Sinfning barcha funktsional imkoniyatlari uning a'zolari - maydonlar (sinf o'zgaruvchilari uning maydonlari deyiladi), xususiyatlari, metodlari, hodisalari bilan ifodalanadi. Masalan, Bino sinfidagi maydonlarni va metodni aniqlaylik:

namespace UzbekDevs
{
   class Bino
   {
       public int Qavatlar; // Qavatlar soni
       public int Maydonlar; // Binoning umumiy maydoni
       public int AholiSoni; // Binoda yashaydigan aholi soni
   }
   // Bu sinf Bino turidagi obyektni e’lon qiladi.
   internal class Program
   {
       static void Main(string[] args)
       {
           Bino uy = new Bino(); // Bino turidagi obyekt e’lon qilish
           int maydon; // Kishi boshiga maydon             
                       //Uy obyektidagi maydonlarga qiymatlarni kiritish
           uy.AholiSoni = 8;
           uy.Maydonlar = 2800;
           uy.Qavatlar = 5;// Bir kishi uchun ajratilgan maydonni hisoblash.
           maydon = uy.Maydonlar / uy.AholiSoni;
           Console.WriteLine("Bino: \n " +
           uy.Qavatlar + " qavat\n " +
           uy.AholiSoni + " aholi\n " +
           uy.Maydonlar +
           " umumiy maydon bo‘lib, shundan\n " +
           maydon + " kishi boshiga to‘g‘ri keladi!");
           Console.ReadKey();
       }
   }
}

Dastur natijasi:

Bino: 5 qavat 8 aholi 2800 umumiy maydon bo`lib, shundan 350 kishi boshiga to`g`ri keladi!