Kurucu (constructor), bir nesnenin üretilmesi aşamasında sınıfın önceden belirlenen özelliklerine değer vermeyi mümkün kılan işlemdir. Örneğin önceki soruda bir nesnenin özelliklerini atayabilmek için aşağıdaki gibi çok satırlı bir kod yazmıştık.
Araba araba = new Araba();
araba.Marka = "Mercedes";
araba.Model = "C200";
araba.TrafigeCikisYili = 1998;
Her bir arabanın (araba nesnesi) markasının ve model bilgilerinin olması gerektiğini düşünerek bu iki özelliği nesne tanımlama aşamsında yazılabilecek şekilde bir constructor yazalım.
class Araba
{
public string Marka;
public string Model;
public int TrafigeCikisYili;
public Araba (string Marka, string Model) //2 parametreli Constructor
{
this.Marka = Marka;
this.Model = Model;
}
public void Calistir()
{
System.Console.WriteLine("rrnnnn");
}
}
Artık önceki örnekteki nesne tanımlama kodumuz hata verecektir, çünkü artık sınıfın tek bir kurucusu var ve bu kurucu da iki string parametre beklemektedir.
Araba araba = new Araba("Mercedes","C200");
//araba.Marka = "Mercedes";
//araba.Model = "C200";
Her sınıfın her özelliği constructor içerisinde belirtilmek zorunda değildir ve bir sınıfın birden fazla kurucusu da olabilir.
Constructor kullanımının bir diğer faydası ise public olarak erişilmesini istemediğimiz alanları private olarak belirlemek ve sadee kurucu üzerinden bu alanların değerlerinin verilebilmesini sağlamaktır.
class Araba
{
private string marka;
private string model;
public int TrafigeCikisYili;
public Araba (string Marka, string Model) //2 parametreli Constructor
{
this.marka = Marka;
this.model = Model;
}
public void Calistir()
{
System.Console.WriteLine("{0} {1} çalıştır", marka,model);
}
}
Araba araba = new Araba("Mercedes","C200");
araba.Calistir(); //Mercedes C200 çalıştı
Önceki yazılarımdan bazıları için;
bkz: C# Nesne Nasıl Oluşturulur?
bkz: C# Yeni Bir Sınıf Nasıl Oluşturulur?
bkz: C# Sınıf ve Nesne Nedir?
bkz: C# ile string'in başına ekleme yapmak (4 farklı çözüm)
bkz: C# ile iç içe while döngüsü kullanımı ve örnekleri
bkz: C# Sayıları Yuvarlama Seçenekleri