C# sinf a’zolari
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);
}
}
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);
}
}
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);
}
}
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
}
}
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);
}
}
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!
