C# Dersleri 58 - Constructor Metotlar


C# Constructor (Yapıcı) Metotlar: Tanımı ve Kullanımı

Constructor metotlar (yapıcı metotlar), bir sınıfın yeni bir nesnesi oluşturulurken otomatik olarak çalışan özel metotlardır. Bu metotlar, nesnenin başlangıç durumunu ayarlamak (örneğin, özelliklere başlangıç değerleri atamak) için kullanılır. Constructor metotlar, sınıfın adıyla aynı olmalı ve geri dönüş tipi belirtmemelidir.

Constructor Metotların Özellikleri

  • Constructor, sınıf adıyla aynı olmalıdır.
  • Geri dönüş tipi yoktur (void dahil).
  • Bir nesne oluşturulduğunda otomatik olarak çalıştırılır.
  • Aynı sınıfta birden fazla constructor metot bulunabilir (overloading ile).

Basit Constructor Örneği

Aşağıdaki örnekte, bir "Car" sınıfında constructor kullanımı gösterilmiştir:

class Car
{
    // Özellikler
    public string Brand;
    public string Model;
    public int Year;

    // Constructor metot
    public Car(string brand, string model, int year)
    {
        Brand = brand;
        Model = model;
        Year = year;
    }

    // Bilgi yazdırma metodu
    public void DisplayInfo()
    {
        Console.WriteLine($"Marka: {Brand}, Model: {Model}, Yıl: {Year}");
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Constructor kullanarak nesne oluşturma
        Car myCar = new Car("Toyota", "Corolla", 2022);
        myCar.DisplayInfo();
    }
}

Programın Çıktısı

Marka: Toyota, Model: Corolla, Yıl: 2022

Default (Varsayılan) Constructor

Eğer bir sınıf için constructor tanımlamazsanız, C# derleyicisi tarafından varsayılan bir constructor (default constructor) otomatik olarak eklenir. Ancak bu varsayılan constructor, herhangi bir parametre almaz ve özelliklere değer atamaz. Örneğin:

class Car
{
    public string Brand;
    public string Model;
    public int Year;
}

class Program
{
    static void Main(string[] args)
    {
        Car myCar = new Car(); // Default constructor kullanılıyor
        myCar.Brand = "Ford";
        myCar.Model = "Focus";
        myCar.Year = 2021;

        Console.WriteLine($"Marka: {myCar.Brand}, Model: {myCar.Model}, Yıl: {myCar.Year}");
    }
}

Overloaded Constructor (Aşırı Yükleme)

Bir sınıfta birden fazla constructor tanımlayabiliriz. Bu işleme constructor overloading (aşırı yükleme) denir. Farklı constructor’lar, farklı parametre kombinasyonlarını destekler:

class Car
{
    public string Brand;
    public string Model;
    public int Year;

    // Constructor 1: Tüm özellikler için
    public Car(string brand, string model, int year)
    {
        Brand = brand;
        Model = model;
        Year = year;
    }

    // Constructor 2: Sadece marka ve model için
    public Car(string brand, string model)
    {
        Brand = brand;
        Model = model;
        Year = 0; // Varsayılan yıl
    }

    public void DisplayInfo()
    {
        Console.WriteLine($"Marka: {Brand}, Model: {Model}, Yıl: {Year}");
    }
}

class Program
{
    static void Main(string[] args)
    {
        Car car1 = new Car("Toyota", "Corolla", 2022);
        Car car2 = new Car("Ford", "Focus");

        car1.DisplayInfo();
        car2.DisplayInfo();
    }
}

Programın Çıktısı

Marka: Toyota, Model: Corolla, Yıl: 2022
Marka: Ford, Model: Focus, Yıl: 0

Kodun Açıklaması

  • Constructor Tanımı: "Car" sınıfında, nesnenin özelliklerini başlatmak için constructor tanımlanmıştır.
  • Overloaded Constructor: İki farklı constructor tanımlanarak, farklı parametre kombinasyonlarını desteklemiştir.
  • Default Constructor: Eğer bir constructor tanımlanmazsa, derleyici tarafından otomatik olarak boş bir constructor eklenir.

Sonuç

Constructor metotlar, C# dilinde nesnelerin başlangıç durumlarını ayarlamak için önemli bir araçtır. Constructor overloading ile farklı durumlar için özel yapıcı metotlar tanımlanabilir. Bu yaklaşım, kodunuzu daha esnek ve okunabilir hale getirir. Constructor metotlarını anlamak ve doğru bir şekilde kullanmak, Nesne Yönelimli Programlama (OOP) yeteneklerinizi geliştirmenize yardımcı olacaktır.