C# konstruktorlari
Konstruktorlar
Konstruktor — obyektlarni initsializatsiya qilish uchun ishlatiladigan maxsus metod. Konstruktorning afzalligi shundaki, u sinf obyekti yaratilganda chaqiriladi. Undan maydonlarga boshlang‘ich qiymatlar berish uchun foydalanish mumkin:
Misol
Konstruktor yarating:
// Create a Car class
class Car
{
public string model; // Create a field
// Create a class constructor for the Car class
public Car()
{
model = "Mustang"; // Set the initial value for model
}
static void Main(string[] args)
{
Car Ford = new Car(); // Create an object of the Car Class (this will call the constructor)
Console.WriteLine(Ford.model); // Print the value of model
}
}
// Outputs "Mustang"
E’tibor bering, konstruktor nomi sinf nomiga mos kelishi shart va u qaytariladigan tipga (masalan, void yoki int) ega bo‘la olmaydi.
Shuningdek, konstruktor obyekt yaratilganda chaqirilishiga e’tibor bering.
Barcha sinflarda sukut bo‘yicha konstruktor bo‘ladi: agar sinf konstruktorini o‘zingiz yaratmasangiz, C# uni siz uchun yaratadi. Biroq bu holda maydonlarga boshlang‘ich qiymatlar bera olmaysiz.
Konstruktorlar vaqtni tejaydi! Nima uchun ekanini yaxshi tushunish uchun ushbu sahifadagi oxirgi misolga qarang.
Konstruktor parametrlari
Konstruktorlar maydonlarni initsializatsiya qilish uchun ishlatiladigan parametrlarni ham qabul qila oladi.
Quyidagi misolda konstruktorga string modelName parametri qo‘shiladi. Konstruktor ichida model’ga modelName qiymatini beramiz (model=modelName). Konstruktorni chaqirganda unga parametr uzatamiz ("Mustang"), bu esa model qiymatini "Mustang"’ga o‘rnatadi:
Misol
class Car
{
public string model;
// Create a class constructor with a parameter
public Car(string modelName)
{
model = modelName;
}
static void Main(string[] args)
{
Car Ford = new Car("Mustang");
Console.WriteLine(Ford.model);
}
}
// Outputs "Mustang"
Xohlagancha parametrga ega bo‘lishingiz mumkin:
Misol
class Car
{
public string model;
public string color;
public int year;
// Create a class constructor with multiple parameters
public Car(string modelName, string modelColor, int modelYear)
{
model = modelName;
color = modelColor;
year = modelYear;
}
static void Main(string[] args)
{
Car Ford = new Car("Mustang", "Red", 1969);
Console.WriteLine(Ford.color + " " + Ford.year + " " + Ford.model);
}
}
// Outputs Red 1969 Mustang
Maslahat: Boshqa metodlar kabi konstruktorlarni ham turli sondagi parametrlardan foydalanib qayta yuklash (overload) mumkin.
Konstruktorlar vaqtni tejaydi
Oldingi bobdagi misolni ko‘rib chiqsangiz, konstruktorlar juda foydali ekanini sezasiz, chunki ular kod hajmini kamaytirishga yordam beradi:
Konstruktorsiz:
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);
}
}
Konstruktor bilan:
prog.cs
class Program
{
static void Main(string[] args)
{
Car Ford = new Car("Mustang", "Red", 1969);
Car Opel = new Car("Astra", "White", 2005);
Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
}
}
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
