İçeriğe geç

Yapıcı Metotlar (Constructor)

C Sharp programa dilinde her şeyin sınıflardan oluştuğunu biliyoruz. İlk bir proje oluştururken bile class anahtar kelimesini görüyoruz. Bir örnekleme işlemi yaparken kullandığımız syntax üzerinde konuşmak istiyorum. Bunun için örnek bir proje oluşturup onun üzerinden ilerleyeceğim. İyi okumalar dilerim…

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace YapiciMetotlar
{
    class Program
    {
        static void Main(string[] args)
        {
            Ornek o1 = new Ornek();
            o1.Test();
        }
    }

    class Ornek
    {
        public void Test()
        {
            Console.WriteLine("Test çalıştı");
        }
    }
}

Örnekleme işlemi yaparken dikkat ettiyseniz Ornek o1 = new Ornek(); kodu içerisinde Ornek() şeklinde bir ifade vardır. C Sharp’ta kod yazarken sonu () ifadesi ile biten kodların aslında bir metotla alakalı olduğunu biliriz. Peki buradaki Ornek() isimde bir metot göremiyorum. Nedir bu Ornek() ?

Bir class yazdığınızda siz istesenizde istemesenizde yazmış olduğunuz class ile aynı isimde bir metot C Sharp derleyicisi tarafından yazılır. Bu metot’a yapıcı metot ya da constructor denilmekte. Biz bu durumu C Sharp derleyicisine bırakmadan kendimiz yapalım.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace YapiciMetotlar
{
    class Program
    {
        static void Main(string[] args)
        {
            Ornek o1 = new Ornek();
            o1.Test();
        }
    }

    class Ornek
    {
        public Ornek()
        {
            Console.WriteLine("Yapıcı metot çalıştı.");
        }
        public void Test()
        {
            Console.WriteLine("Test çalıştı");
        }
    }
}

Şimdi bir dakika… Ornek class’ı içerisinde class ile aynı isimde bir metot tanımlandığında bunun bir yapıcı metot olduğunu az önce söylemiştik ancak bu metodun tanımlanmasında bir sıkıntı var gibi. Geriye bir değer döndürmüyor ancak void anahtar kelimesi yok. Eğer bunu düşündüyseniz size cevabım evet yapıcı metotlar geriye değer döndüremezler bundan dolayı ayrıca bir void anahtar kelimesine ihtiyaç duymazlar. Sadece bir erişim belirleyicisine (public) ihtiyaç duyarlar ancak bunu belirtmeseniz de kendisi bu durumu otomatik yapacaktır. Küçük bir bilgi ekleyelim yapıcı metotlar aslında örnekleme işlemi gerçekleştirilirken çağrıldığından dolayı aslında bir class’ta çalışan ilk metottur. Yani bir örnekleme işleminde olmasını istediğiniz ilk işlemleri burada yapabilirsiniz ayrıca başka bir class içerisindeyken bir örnekleme işlemi yapıldığından dolayı yapıcı metotların erişim belirleyicileri private olamaz.

Kategori:C Sharp

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir