Serdar YILMAZ
Bizimkisi Bir “Bug” Hikayesi...
Serdivan/Sakarya

Etiket 'Yapıcı Metotlar Ne İşe Yarar ?'

C# – Yapıcı Metotlar

dotnet

Bir sınıftan nesne oluşturulduğu an arkaplanda otomatik olarak çalıştırılan metotlara yapıcı metotlar denilmektedir. Bu yüzden nesne oluşturulduğunda otomatik olarak yapılmasını istediğimiz işlemleri yapıcı metotların içerisine yazarız.

Yapıcı Metotlar Nasıl Tanımlanır ? 

  1. Yapıcı metotların isimleri sınıf isimleri ile aynı olmak zorundadır.
  2. Public olarak bildirilmeleri gerekir.
  3. Geri dönüş değerleri yoktur.

new Matematik()” ifadesi ile Matematik sınıfından bir nesne oluşturulduğu an yapıcı metot otomatik olarak çalışacak ve PiSayisi özelliğine 3.1415 değerini, EulerSayisi özelliğine 2.7182 değerini atayacaktır.

Sıradan metotlar gibi yapıcı metotlarda parametre alabilmektedir. Ancak yapıcı metotlar nesne oluşturulduğu an çalıştığı için parametreler nesne oluşturulurken girilmelidir.

Bir önceki yazımızda Sınıfları anlatırken yukarıdaki programı yapıcı metot kullanmadan hazırlamıştık (Bkz:C# – Sınıflar). Her iki kaynak kodu karşılaştırıldığında, yapıcı metodun Main()‘de ki kod kalabalığını azalttığı ve özelliklere olan erişimi daha kontrollü bir şekilde sağladığı görülecektir.

Yapıcı Metotların Aşırı Yüklenmesi

Tıpkı sıradan metotlar gibi yapıcı metotlarda aşırı yüklenebilir. Metotları anlatırken imza kavramına ve metotların aşırı yüklenmesine değinmiştik (Bkz: C# – Metotların Aşırı Yüklenmesi). Yinede kısaca bahsetmek gerekirse; parametre sayısı ve parametrelerin tipinden en az birisinin farklı olması şartıyla birden fazla yapıcı metot tanımlanabilir.

Varsayılan Yapıcı Metot

Her sınıfın biz tanımlasak da tanımlamasak da bir yapıcı metodu vardır. Bu yapıcı metoda varsayılan yapıcı metot denilmektedir. Default olarak sınıf içerisinde yer alan bu yapıcı metodun görevi; sınıf içerisindeki özelliklere(değişkenlere) herhangi bir ilk değer vermediğimizde, bu özelliklerden numerik olanlara “0”, bool tipinde olanlara “false ” ve string gibi referans tipli olanlara da “null” değerini atamaktadır.

Serdar YILMAZ