سازنده ها (Constructors)
سازنده یا Constructor یه متد خاصه که وقتی یه شیء (Object) از یه کلاس ساخته می کنی، خودش خودکار اجرا میشه. سازنده برای مقداردهی اولیه فیلدهاست، یعنی مثل آماده سازی وسایل قبل از شروع بازی.
ایجاد یک سازنده ساده
بیایید یه کلاس Car بسازیم که خودش مقدار اولیه مدل ماشین رو تنظیم کنه.
class Car
{
public string model;
public Car()
{
model = "Mustang";
}
static void Main(string[] args)
{
Car Ford = new Car();
Console.WriteLine(Ford.model);
}
}
نکته: نام سازنده باید دقیقاً مثل نام کلاس باشد و هیچ نوع بازگشتی (مثل void) ندارد. اگر خودت نسازی، سی شارپ خودش یه سازنده خالی می سازه ولی نمی تونی مقدار اولیه بدهی.
سازنده با پارامتر
سازنده می تونه پارامتر بگیره تا داده ها رو موقع ساخت شیء تنظیم کنی.
class Car
{
public string model;
public Car(string modelName)
{
model = modelName;
}
static void Main(string[] args)
{
Car Ford = new Car("Mustang");
Console.WriteLine(Ford.model);
}
}
می تونی چند پارامتر هم بفرستی و همه رو یک جا مقداردهی کنی.
class Car
{
public string model;
public string color;
public int year;
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);
}
}
نکته: مثل بقیه متدها، می تونی سازنده ها رو Overload کنی؛ یعنی چند سازنده با پارامترهای مختلف داشته باشی.
سازنده ها چطور زمان ذخیره می کنند
بدون سازنده باید یکی یکی مقادیر رو دستی تنظیم کنی. ولی با سازنده فقط یه خط کد می نویسی و همه چی آماده است.
بدون سازنده:
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);
}
}
با سازنده:
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);
}
}
جمع بندی سریع
- سازنده هنگام ساخت شیء خودکار اجرا می شود.
- نامش باید مثل نام کلاس باشد.
- نوع بازگشتی ندارد.
- می تواند پارامتر داشته باشد.
- کد را کوتاه و تمیز می کند.
برای ادامه یادگیری، بخش اعضای کلاس و قیدهای دسترسی را هم ببین.