9.2 – Overload (Aşırı Yükleme) Kavramı


📘 9.2 – Overload (Aşırı Yükleme) Kavramı


🔹 Açıklama:

Overloading (Aşırı Yükleme), bir sınıf içinde aynı isimde birden fazla constructor (yapıcı metot) veya metot tanımlayabilmeye olanak sağlayan bir özelliktir. Fark, bu metotların aldığı parametre türü ya da parametre sayısındadır.

Aynı işi farklı türlerde verilerle yapabilmek için overload kullanılır. Özellikle sınıflarda nesne oluştururken, farklı senaryolara uyum sağlamak açısından overload edilmiş constructor’lar büyük kolaylık sağlar.


📍 Kullanım Alanları:

  • Öğrenci sınıfı için hem ad-soyad hem ad-soyad-numara ile nesne üretimi
  • Aynı işlem için hem int hem double parametreyle çalışabilen metotlar
  • Form yapılarında farklı senaryolara göre sınıfın başlatılması
  • Geniş projelerde kod tekrarını azaltmak ve esneklik sağlamak

🎯 Kazanımlar:

  • Aynı metot adını farklı parametrelerle nasıl kullanacağını öğrenme
  • Constructor overload ile sınıfa çok yönlü veri girişini kavrama
  • Kod okunabilirliğini ve yeniden kullanılabilirliği artırma
  • Tek sınıf üzerinden çoklu yapı desteği oluşturma

🧪 9.2 – Overload (Aşırı Yükleme) Kavramı: Uygulamalı 5 Örnek


📌 Örnek 1: Aynı İsimli Farklı Constructor’lar

🎯 Amaç: Sadece ad ile veya ad ve soyad ile nesne oluşturulabilsin.

public class Ogrenci
{
    public string Ad { get; set; }
    public string Soyad { get; set; }

    public Ogrenci(string ad)
    {
        Ad = ad;
        Soyad = "Bilinmiyor";
    }

    public Ogrenci(string ad, string soyad)
    {
        Ad = ad;
        Soyad = soyad;
    }
}

// Kullanım:
var ogr1 = new Ogrenci("Mehmet");
var ogr2 = new Ogrenci("Ayşe", "Demir");

📝 Açıklama:

Aynı sınıfla birden fazla farklı senaryoyu karşılayabiliriz.


📌 Örnek 2: Notlar Girilerek veya Girilmeyerek Oluşturulabilen Öğrenci

public class Ogrenci
{
    public string Ad { get; set; }
    public double Ortalama { get; set; }

    public Ogrenci(string ad)
    {
        Ad = ad;
        Ortalama = 0;
    }

    public Ogrenci(string ad, double n1, double n2, double n3)
    {
        Ad = ad;
        Ortalama = (n1 + n2 + n3) / 3;
    }
}

📝 Açıklama:

Öğrenci ister sadece adla, ister tüm notlarla birlikte oluşturulabilir.


📌 Örnek 3: Farklı Türde Parametrelerle Overload

public class Hesaplayici
{
    public int Topla(int a, int b)
    {
        return a + b;
    }

    public double Topla(double a, double b)
    {
        return a + b;
    }
}

📝 Açıklama:

Aynı “Topla” metodu hem int hem double türüyle çalışabilir.


📌 Örnek 4: Listeye Öğrenci Ekleyen Overload’lı Metot

public class OgrenciListesi
{
    public List<string> liste = new List<string>();

    public void Ekle(string ad)
    {
        liste.Add(ad);
    }

    public void Ekle(string ad, string soyad)
    {
        liste.Add($"{ad} {soyad}");
    }
}

📝 Açıklama:

Kullanıcı ister ad, ister ad+soyad girerek aynı metodu kullanabilir.


📌 Örnek 5: Form Otomasyonu İçin Farklı Yapıcılar

public class RaporForm : Form
{
    public RaporForm()
    {
        this.Text = "Boş Rapor";
    }

    public RaporForm(string baslik)
    {
        this.Text = baslik;
    }
}

Kullanım:

RaporForm form1 = new RaporForm(); // "Boş Rapor"
RaporForm form2 = new RaporForm("Öğrenci Raporu"); // "Öğrenci Raporu"

📝 Açıklama:

Form başlığı kullanıcının ihtiyacına göre farklı şekilde ayarlanabilir.


✅ Özet:

Bu örneklerle öğrenciler:

  • Overloading mantığını ve sözdizimini öğrendi
  • Aynı işlemi farklı yollarla nasıl gerçekleştirebileceklerini kavradı
  • Sınıf ve metotların daha esnek, daha akıllı yapılar hâline getirilebildiğini gördü

1 Response

  1. Pingback : A'DAN Z'YE C# İLE NTP - Hasan TANDOĞAN

Leave a Reply