C# Dersleri 58 - Constructor Metotlar

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.

Bu içeriği beğendiyseniz paylaşarak destek olabilirsiniz!


Eğitim İçeriği

Eğitim C# Dersleri
Kategori Programlama Dili
Ders Adeti 69 Ders
Dil Türkçe
Güncelleme 04/2024
  • HTML Dersleri

    HTML Dersleri Sıfırdan İleri Seviyeye

    Kategori Web Programlama
    Ders Süresi 19 Ders
    Dil Türkçe
    Güncelleme 12/2020
    Derse Başla
  • Java Dersleri

    Java Dersleri ve Nesne Yönelimli Programlama

    Kategori Programlama Dili
    Ders Süresi 125 Ders
    Dil Türkçe
    Güncelleme 09/2020
    Derse Başla
  • CSS Dersleri

    CSS Dersleri Başlangıçtan İleri Seviyeye

    Kategori Web Programlama
    Ders Süresi 49 Ders
    Dil Türkçe
    Güncelleme 10/2021
    Derse Başla
  • Java Örnek Projeler

    Java Örnek Projeler

    Kategori Programlama Dili
    Ders Süresi 20 Ders
    Dil Türkçe
    Güncelleme 10/2022
    Derse Başla
  • C# Dersleri

    C# Dersleri ve Nesne Yönelimli Programlama

    Kategori Programlama Dili
    Ders Süresi 100 Ders
    Dil Türkçe
    Güncelleme 04/2024
    Derse Başla