Overloading(Fazla yükleme)

Eyl 08, 2013

Aşırı yükleme (overloading) ,  Nesne Yönelimli (Object Oriented) Programlama’nın en önemli özelliklerindendir.  Aşırı yükleme (overloading) sayesinde benzer işleri yapan birçok metot yerine bir metot kullanılır ve tek bir ara yüz kullanılmış olur. Farklı parametre tipleri alabilen metotlar yazmak gerektiğinde ya da eski yazılan metotlara yeni özellikler eklemek gerektiğinde aşırı yükleme kullanılır.

Aynı sınıf içinde aynı isimli iki metot aşırı yükleme olmadan tanımlanamaz.  Aynı isimle tanımlanmış metotlara aktarılan parametreler ile bu parametrelerin veri tipleri, metodun tanımlanması esnasında belirtilmelidir. Buna metodun imzası denir. Metodun imzasını oluşturan elementleri değiştirmek metodu aşırı yüklenebilir hale getirebilir. Metodun imzası;  metodun ismi, parametre tipi ve parametre sayısı ile anlaşılır.
Aşırı yükleme gerekli olduğu durumlarda kullanılmalıdır. Aynı metot için çok fazla kullanıldığında program kodu bakımı ve oluşabilecek hataların ayıklanması zorlaşır. Bir örneği aşağıda gösterilmiştir:

namespace ornek
  {
    class Program

     {
      static void Main(string[] args)

       {
          Console.WriteLine("ad giriniz..");
          string isim1 = Console.ReadLine();
          Console.WriteLine("soyad giriniz..");
          string soyisim = Console.ReadLine();
        string sonuc1 = isim_soyad(isim1, soyisim);
          Console.WriteLine(sonuc1);
          Console.WriteLine("ikinci adı da giriniz..");
          string isim2 = Console.ReadLine();
          string sonuc2 = isim_soyad(isim1, soyisim, isim2);
          Console.WriteLine(sonuc2);
       }

     static string isim_soyad(string isim1, string soyisim)

       {
          string sonuc = isim1 + " " + soyisim;
          return sonuc;
       }

     static string isim_soyad(string isim1, string soyisim, string isim2)

       {
          string sonuc = isim1 + " " + isim2 + " " + soyisim;
          return sonuc;
       }

     }
  }
Yukarıda gösterilen kod çıktılarıyla aşağıda adım adım anlatılmıştır:
  1. İlk adımda parametre olarak bir isim girilmesi istenir. 

     

  2. Siyah ekranda bir isim girilir.



  3. İsim girildikten sonra "enter" tuşuna basılır ve ikinci parametre olarak soyisim girilmesi istenir.



  4. Siyah ekranda bir soyisim girilir.



  5. Soyisim girilip "enter" tuşuna tekrar basıldığında girilen isim ve soyisim parametreleri yanyana sıralanarak yazılmış olur. İki parametreli çıktı alınmış olur. Diğer satırda ikinci bir isim girilmesi istenerek üçüncü bir parametre girilmesi istenir. Kod yazılırken yapılan overloading (aşırı yükleme) olayı burada görülür. Aynı imzaya sahip metodları farklı sayıda veya isimdeki parametrelerle kullanabilme özelliği bu adımda gösterilmiş olunur. 



  6. Üçüncü parametre siyah ekranda ikinci bir isim olarak girilir.



  7. İkinci bir isim girildikten sonra tekrardan "enter" tuşuna basılır. Overloding (aşırı yükleme) olayına  ve kod sırasında yazılan sıraya uygun bir şekilde çıktı elde edilir. Böylece overloading (aşırı yükleme) ile aynı imzalı farklı parametreli bir çıktı alınmış olur.