C#

C# Yapılandırıcılar (Constructors)

Metot ve metotların parametreli kullanımlarına değindik. Şimdi ise değişkenlerimize program başladığında ilk değerlerini nasıl veririz yani nasıl yapılandırırız buna değineceğiz. Normal yapıda, tanımladığınız değişkenleri tanımlar daha sonra kullanacağımız zaman programın değişik yerlerinde değerler veririz. Ancak bu güvenli ve sağlıklı bir yapı olmaz (Özellikle büyük projelerde). Biz değişkenleri tanımladığımız da aslında farketmeden C# değişkenlere ilk değerlerini atar. Yani kendi yapılandırıcısı vardır. Bunu new operatörüyle sağlar. Üye değişkenlerin değer tipi için ilk değeri sıfır, bool için false, referans tipi için ise null olur. Peki biz yapılandırıcı tanımlarsak bir karışıklık olur mu? Bunun cevabı “Hayır”. Çünkü biz yapılandırıcı tanımladığımız anda C# kendi yapılandırıcısını yok eder.

Yapılandırıcılar, metotları ilk kullanıma hazırlamak için kullanılırlar. Daha önce el ile değer verdiğimiz örnek değişkenlere yapılandırıcılar ile değer verebiliriz. Bu hem güvenli hem düzenli olmasını sağlayacaktır. Yapılandırıcılar sınıfları ile aynı isme sahiptir. Ayrıca yapı olarak ta metotlara benzerler. Metotlardan farklı olarak dönüş tipi belirtilmez.

Yapılandırıcının tanımlaması şu şekildedir:

erişim sınıf-adı(parametreler) {

}

Erişim tipi genelde public‘tir.

Basit bir örnekte yapımızı görelim:

class Deneme
    {
       // Diğer classtan erişebilmek için public tanımladık
        public int x;
            
            // Yapılandırıcı ile x değişkenine ilk değerimizi atadık 
            public Deneme()
            {
                x = 10;
            }
    }

    class Program {

        public static void Main()
        {
            Deneme deneme = new Deneme();

            int sonuc;
            // Program çalıştığında x'e herhangi bir değer daha atanmadan işleme sokmuş olduk
            sonuc = deneme.x * 2;
            Console.WriteLine("Sonuç: " + sonuc);
        }
    
    }

Klasik bir yapılandırıcı ile değer atamamızı yaptık. Peki bir nesne tanımladıktan sonra o nesnenin değişkenlerine değer atamak istersek ne olacak? Bunun için parametreli yapılandırıcılara ihtiyacımız. Genel olarak bu yapılandırıcıları kullanacağız. Hemen bir örnek üzerinden baitçe yapıyı incelemeye başlayalım:

namespace OOP
{

	public class Tasit
	{

		public int hiz; // Taşıtın Maximum hızı 
		public String renk; // Taşıtın rengi
		public String marka; // Taşıtın markası

		// Parametreli yapılandırıcıda ilk değerli atıyoruz
		public Tasit(int hiz, String marka, String renk) {
			this.marka = marka;
			this.hiz = hiz;
			this.renk = renk;
		}

		public void tasitInfo() {
			String tasit = "Taşıtın markası: " + marka + " rengi: " + renk + " maximum hızı: " + hiz;

			System.Console.WriteLine (tasit);
		}
			
	}

	class MainClass
	{
		public static void Main (string[] args)
		{
			// Taşıt tipinden nesneler oluşturuyoruz
			// Nesne oluşturuken yapılandırıcının istedği değerleri veriyoruz
			Tasit otomobil = new Tasit (200, "Renault", "Mavi");

			otomobil.tasitInfo ();


		}
	}
}

 Görüdüğümüz gibi yapılandırıcılar işimizi kolaylaştıran ve daha sağlıklı kod yazmamız sağlayan yapılar. Bu yapılar basit olsada anlamak için metot ve parametre mantığını iyi anlamamız gerekiyor. Daha önceki yazılarımdan bu konulara da göz atabilirsiniz. Kodlamaya devam 🙂

[alert style=”blue”] “Başarı,küçük hataların ve başarısızlıkların biraz ilerisinde duran şeydir.” T. J. Watson [/alert]

Yorum Ekle

  • […] Metot ve metotların parametreli kullanımlarına değindik. Şimdi ise değişkenlerimize program başladığında ilk değerlerini nasıl veririz yani nasıl yapılandırırız buna değineceğiz. Normal yapıda, tanımladığınız değişkenleri tanımlar daha sonra kullanacağımız zaman programın değişik yerlerinde değerler veririz. Ancak bu güvenli ve sağlıklı bir yapı olmaz (Özellikle büyük projelerde). Biz değişkenleri tanımladığımız da aslında farketmeden C#değişkenlere ilk değerlerini atar. Yani kendi yapılandırıcısı vardır. Bunu new operatörüyle sağlar. Üye değişkenlerin değer tipi için ilk değeri sıfır, bool için false, referans tipi için ise null olur. Peki biz yapılandırıcı tanımlarsak bir karışıklık olur mu? Bunun cevabı “Hayır”. Çünkü biz yapılandırıcı tanımladığımız anda C# kendi yapılandırıcısını yok eder. Okumaya devam et… […]

Yorum Yap