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.