27 Oca 2016

Nesne Kurucusu (Constructor)

Sinif nesne = new Sinif();
Yukarıda Sinif adlı class'ı kullanarak nesne adlı bir nesne türettik. Bu kod satırı okunduğu anda eğer Sinif adlı class'ın içinde bir nesne kurucusu varsa o hiçbir komut beklemeden çalışacak ve içerisindeki işlemler yapılmaya başlanacaktır.

Peki bir metodu nasıl bir sınıfın nesne kurucusu (constructor'ı) olarak tanımlayabiliriz? Bir metodun nesne kurucusu olabilmesi için içerisinde bulunduğu sınıf ile aynı ismi taşıması gerekmektedir. Ayrıca tanımlanırken metot adının başına herhangi bir veri tipi yazılmamalıdır. Unutulmamalıdır ki nesne kurucusu olan metotlar parametresiz olabileceği gibi, parametreli olarak da tanımlanabilir. Parametre almayan ve alan  nesne kurucularının nasıl tanımlanacağı aşağıda belirtilmiştir. Ayrıca bunların ana programdan nasıl çağrıldığı da aşağıdadır;
static void Main(string[] args)
        {
            Sinif nesne1 = new Sinif();  //bu kod okunduğu anda parametresiz constructor çalıştırılarak ekrana 8 yazdırılacaktır.
            Sinif nesne2 = new Sinif(10, 5); //bu kod okunduğunda ise parametreli constructor çalıştırılıp ekrana 15 yazdırılacaktır.
            Console.ReadKey();
        }
        public class Sinif
        {
            public int a;
            public int b;
            //a ve b sayılarını toplatmak için bir nesne kurucusu metot yazalım
            //aşağıda parametre almayan nesne kurucusu bulunmaktadır
            public Sinif()
            {
                a = 5;
                b = 3;
                Console.Write("Parametresiz constructor sonucu: ");
                Console.WriteLine(a + b);
            }
            //aşağıda parametre alan nesne kurucusu bulunmaktadır
            public Sinif(int sayi1, int sayi2)
            {
                a = sayi1;
                b = sayi2;
                Console.Write("Parametre alan constructor sonucu: ");
                Console.WriteLine(a + b);
            }
        }

Visual Studio'da ctor yazıp 2 kere tab tuşuna basarsak program bizim için o class'în nesne kurucusunu kendisi oluşturur.

Hiç yorum yok:

Yorum Gönder