C# sinf a’zolari


ULASHISH

Sinf a’zolari

Sinflar ichidagi maydonlar va metodlar ko‘pincha "sinf a’zolari" (class members) deb ataladi:

Misol

Uchta sinf a’zosiga — ikkita maydon va bitta metodga ega Car sinfini yarating.

// The class
class MyClass
{
  // Class members
  string color = "red";        // field
  int maxSpeed = 200;          // field
  public void fullThrottle()   // method
  {
    Console.WriteLine("The car is going as fast as it can!");
  }
}

Maydonlar

Oldingi bobda sinf ichidagi o‘zgaruvchilar maydonlar deb atalishini va ularga sinf obyektini yaratib, nuqta sintaksisi (.) orqali murojaat qilish mumkinligini bilib oldingiz.

Quyidagi misolda Car sinfining myObj nomli obyekti yaratiladi. So‘ng color va maxSpeed maydonlarining qiymatini chiqaramiz:

Misol

class Car 
{
  string color = "red";
  int maxSpeed = 200;

  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.color);
    Console.WriteLine(myObj.maxSpeed);
  }
}

O‘zingiz sinab ko‘ring »

Maydonlarni bo‘sh qoldirib, obyekt yaratishda ularni o‘zgartirishingiz ham mumkin:

Misol

class Car 
{
  string color;
  int maxSpeed;

  static void Main(string[] args)
  {
    Car myObj = new Car();
    myObj.color = "red";
    myObj.maxSpeed = 200;
    Console.WriteLine(myObj.color);
    Console.WriteLine(myObj.maxSpeed);
  }
}

O‘zingiz sinab ko‘ring »

Bu ayniqsa bitta sinfdan bir nechta obyekt yaratishda foydali:

Misol

class Car 
{
  string model;
  string color;
  int year;

  static void Main(string[] args)
  {
    Car Ford = new Car();
    Ford.model = "Mustang";
    Ford.color = "red";
    Ford.year = 1969;

    Car Opel = new Car();
    Opel.model = "Astra";
    Opel.color = "white";
    Opel.year = 2005;

    Console.WriteLine(Ford.model);
    Console.WriteLine(Opel.model);
  }
}

O‘zingiz sinab ko‘ring »



Obyekt metodlari

C# metodlari bobidan metodlar muayyan amallarni bajarish uchun ishlatilishini bilib oldingiz.

Metodlar odatda sinfga tegishli bo‘ladi va ular sinf obyektining o‘zini qanday tutishini belgilaydi.

Maydonlardagi kabi metodlarga ham nuqta sintaksisi orqali murojaat qilishingiz mumkin. Biroq metod public bo‘lishi kerakligiga e’tibor bering. Shuningdek, metodni chaqirish (bajarish) uchun metod nomi, undan keyin ikkita qavs () va nuqtali vergul ; yozilishini yodda tuting:

Misol

class Car 
{
  string color;                 // field
  int maxSpeed;                 // field
  public void fullThrottle()    // method
  {
    Console.WriteLine("The car is going as fast as it can!"); 
  }

  static void Main(string[] args)
  {
    Car myObj = new Car();
    myObj.fullThrottle();  // Call the method
  }
}

O‘zingiz sinab ko‘ring »

Nega metodni C# metodlari bobidagi misollardagi kabi static emas, balki public deb e’lon qildik?

Sababi oddiy: static metodga sinf obyektini yaratmasdan murojaat qilish mumkin, public metodlarga esa faqat obyektlar orqali murojaat qilish mumkin.


Bir nechta sinfdan foydalanish

Oldingi bobdan eslang: yaxshiroq tashkil etish uchun bir nechta sinfdan foydalanishimiz mumkin (biri maydonlar va metodlar uchun, boshqasi bajarish uchun). Bu tavsiya etiladi:

prog2.cs

class Car 
{
  public string model;
  public string color;
  public int year;
  public void fullThrottle()
  {
    Console.WriteLine("The car is going as fast as it can!"); 
  }
}

prog.cs

class Program
{
  static void Main(string[] args)
  {
    Car Ford = new Car();
    Ford.model = "Mustang";
    Ford.color = "red";
    Ford.year = 1969;

    Car Opel = new Car();
    Opel.model = "Astra";
    Opel.color = "white";
    Opel.year = 2005;

    Console.WriteLine(Ford.model);
    Console.WriteLine(Opel.model);
  }
}

O‘zingiz sinab ko‘ring »

public kalit so‘zi kirish modifikatori deb ataladi va u Car maydonlari boshqa sinflar, masalan, Program uchun ham ochiq ekanini bildiradi.

Kirish modifikatorlari haqida keyingi boblarda batafsil bilib olasiz.

Maslahat: O‘qishni davom ettirar ekansiz, konstruktorlar va xususiyatlar (properties) kabi boshqa sinf a’zolari haqida ham bilib olasiz.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!