|
C# Dilinde Yapılandırıcılara Aşırı Yüklenmesi |
|
Gönderiliyor lütfen bekleyin... |
|
|
C# dilinde bulunan
ve nesne yönelimli programlama kavramı içinde yeralan güzel bir özelliği yapılandırıcılara
aşırı yüklenme konusunu bu yazımızda inceleyelim. Bazen bir nesneyi oluştururken
bu işi birden farklı şekillerde yapmak zorunda kalırız.
Mesela elimizde
bir programcı sınıfı var ve bu sınıftan oluşturduğumuz her programcı nesnesinin
tüm özelliklerini oluştururken veremeyebiliriz. Programcı nesnelerimizi oluştururken
bir kısım bilgileri sonradan elde etmek durumda kalabiliriz. Veya başka bir
programda herhangi bir sınıfın bir örneğini oluştururken bu nesneye ait olan
n tane özelliğin bir kısmına ihitiyaç duymadan girilmeyen parametrelere varsayılan
değerler atayarak işimizi halletme şansımız da var.
Aşağıdaki programımızda,
Programci sınıfımızın yasi, adi, soyadi ve kullandigiDil
olmak üzere 4 tane özelliği bulunmakta. Sınıfımızın 4 tane yapılandırıcısı var.
Bunların isimleri aynı (zaten yapılandırıcının ismi sınıf ismi ile aynı olur).
Farklı olan ise aldıkları parametre sayıları ve tipleri olabilir.
Sırasıyla, birinci
yapılandırıcı hiç bir değer almıyor. İkinci yapılandırıcımız iki tane değişken
alıyor. Bunlardan yas ve adi değerleridir. Üçüncüsü ise yas,
adi ve soyadi parametrelerini alarak nesnemizi oluşturuyor. Son
yapılandırıcımız ise yas, adi, soyadi ve kullandigiDil
değişkenleridir. İlk üç yapılandırıcı alınmayan yas değişkenine 0
diğerlerine null değerleri atıyor.
Sınıfımızın beşinci
ve son metodu ise bu sınıftan ürettiğimiz bir nesnenin özelliklerini ekrana
yazdırıyor. Eğer nesnenin bir özelliğinin değeri varsa onu yazdırıyor, yoksa
bu özellik hakkında bir malumatımız yok gibisinden bir uyarı yazıyor ekrana.
Pogramımızın Main()
fonksiyonu içinde önce 4 tane (a, b, c, ve d) programcı nesnesi oluşturuyoruz.
Bunların herbirini ayrı yapılandırıcılar ile oluşturuyoruz. showOzellik() metodumuz
ile bunların herbirinin özelliklerini ekrana yazdırıyoruz.
using System;
class OverLoadedFunctions
{
static void Main(string[] args)
{
Programci a = new Programci();
Programci b = new Programci(23,"Ziya");
Programci c = new Programci(27,"Kamuran","Kamiloğlu");
Programci d= new Programci(30,"Hayrettin","Kütükçü","C#");
a.showOzellikler();
b.showOzellikler();
c.showOzellikler();
d.showOzellikler();
Console.ReadLine();
}
}
class Programci
{
int yasi;
string adi;
string soyadi;
string kullandigiDil;
// Hic parametre
almayan bir yapılandırıcı..
public Programci()
{
this.adi=null;
this.yasi=0;
this.soyadi=null;
this.kullandigiDil=null;
}
//
İsmini ve yasini alan bir yapılandırıcı..
public Programci(int yasi, string adi)
{
this.adi=adi;
this.yasi=yasi;
this.soyadi=null;
this.kullandigiDil=null;
}
//
İsmini, soyismini ve yasini alan bir yapılandırıcı..
public Programci(int yasi, string adi, string soyadi)
{
this.adi=adi;
this.yasi=yasi;
this.soyadi=soyadi;
this.kullandigiDil=null;
}
//
İsmini, soyismini kullandığı dili ve yasini alan bir yapılandırıcı..
public Programci(int yasi, string adi, string
soyadi, string kullandigiDil)
{
this.adi=adi;
this.yasi=yasi;
this.soyadi=soyadi;
this.kullandigiDil=kullandigiDil;
}
public void showOzellikler()
{
Console.WriteLine("*****************************************************************\n");
if(this.yasi!=0)
Console.WriteLine("Yasi
: "+this.yasi);
else Console.WriteLine("Yasi
bilgisi elimizde yok şu anda...");
if(this.adi!=null)
Console.WriteLine("Adı
: "+this.adi);
else Console.WriteLine("Adi bilgisi
elimizde yok şu anda...");
if(this.soyadi!=null)
Console.WriteLine("Soyadı
: "+this.soyadi);
else Console.WriteLine("Soyadı
bilgisi elimizde yok şu anda...");
if(this.kullandigiDil!=null)
Console.WriteLine("Kullandığı
Programlama dili : "+this.kullandigiDil);
else Console.WriteLine("Hangi
Dili kullanığını bilmiyoruz be... :-(\n");
Console.WriteLine("\n*****************************************************************\n");
}
}
|
Makale:
C# Dilinde Yapılandırıcılara Aşırı Yüklenmesi C#, Visual C# ve .NET Ahmet Faruk Nacaroğlu
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|