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.
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(); } }
Marka: Toyota, Model: Corolla, Yıl: 2022
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}"); } }
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(); } }
Marka: Toyota, Model: Corolla, Yıl: 2022 Marka: Ford, Model: Focus, Yıl: 0
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.