22
Kas'13

OOP 3: Constructor ve İlk Değer Atamaları (C# ile OOP)

Constructor(Ctor)(yapıcı fonksiyon), sınıfların içlerine yazılır ve sadece içine yazıldığı sınıftan bir nesne örneklenirken 1 defaya mahsus olarak çağırılır. C#’ta constructor, sınıf ile aynı isimde olmalıdır.

using System;

namespace ConstructorVeIlkDegerAtamalari
{
    class Tasit
    {
        //Constructor(yapıcı fonksiyon)
        public Tasit()
        {

        }
    }
}

Eğer class içerisine ctor kodlanmazsa derleyici bizim yerimize default bir ctor tanımlar. Bu ctor parametre almayan boş bir ctor olacaktır.

 

Constructor’lar genelde belleğe çıkan nesnenin özelliklerine ilk değer atamaları için kullanılır. Birçok özel durum da ihtiyaç duyulduğunda constructor içine kodlanabilir. Örneğin sınıftan kaç adet nesne örneklendiğini bilmek için.

class Tasit
{
    public string Marka;
    public string Model;

    //Constructor(yapıcı fonksiyon)
    public Tasit()
    {
        Marka = "Wokswagen";
        Model = "Golf";
    }
}

Yukarıdaki class için bir nesne örnekleyip property’lerini ekrana bastığımızda, property’lere değerlerinin atanmış olduklarını görebiliriz.

ilkDegerAtandi

Parametre Alan Ctor

Tabiki ctor içerisinde değerleri direkt girmek çoğu kez yetersiz kalacaktır ve pek de mantıklı değil. Yapıcı fonksiyonlar geriye değer döndüremezler fakat parametre alabilirler. Alınan parametreler, property’lere ilk değer ataması yapmak için kullanılabilir.

class Tasit
{
    public string Marka;
    public string Model;

    //Constructor(yapıcı fonksiyon)
    public Tasit(string marka, string model)
    {
        Marka = marka;
        Model = model;
    }
}

Nesne örneklernirken bu parametreleri girmek gerekir.

Tasit t = new Tasit("Wolkswagen","Golf");

Özet:

– Ctor ‘lar sınıfların içine, sınıf ile aynı isimde yazılır.

– Ctor, sınıftan nesne örneklenirken 1 defaya mahsus çağırılır.

– Ctor yazmazsak derleyici, parametre almayan boş bir ctor yaratır.

– Ctor’lar genelde ilk değer atamaları için kullanılır.

– Ctor’lar değer döndüremezler fakat parametre alabilirler.

 

İyi Eğlenceler…

  • burak

    ilk bilgiyi yanlış vermissin

    • http://turgayozgur.com/ Turgay Özgür

      Yanlış bilgiyi ve doğrusunu açıkça yazarsanız memnun olurum. Teşekkürler.

Yeni makaleleri E-Mail ile takip edin!