Constructor (Yapıcı Metot) Nedir?
Herkese selam, OOP yazı serimizin üçüncüsü ile karşınızdayım. Bugün nesne yönelimli programlama serimize Constructor yani yapıcı metot konusu ile devam ediyoruz. Daha önceki yazılarımızda temel sınıf oluşturma, oluşturulan sınıftan nesne üretme ve OOP’nin temel 4 ilkesine değinmiştik. Serinin önceki yazılarına Nesne Yönelimli Programlama Yazı Serisi altında toplandığım başlıklardan erişebilirsiniz.
Sınıf ve nesne kavramları ile temel OOP ilkelerinin ardından Constructor konusundan devam edebiliriz.
Constructor (Yapıcı Metot) Nedir?
Nesne yönelimli programlamada sınıf yapılarının nesne şeklinde tanımlanması için gerekli alt yapıyı hazırlayan metottur. Kurucu rolünde görev alan bu yapıcı metodun ismi sınıf ismi ile aynı olmak zorundadır. Geriye değer döndürmeyen yapıcı metotlar tanımlanmasa dahi ilk nesne oluşturulduğu zaman program arka planda default bir constructor oluşturmaktadır.
En temel ifadeyle yapıcı metotlar sınıflardan nesne oluşturulduğu sırada oluşan ve geriye dönüş tipi olmayan metotlardır. Görevi ise oluşturulan nesneyi ilk kullanıma hazır hale getirmesidir.
Yapıcı Metot Özellikleri
Yapıcı metotların yukarıda da bahsettiğimiz üzere çeşitli özellikleri bulunmaktadır. Bunlar genel olarak aşağıdaki gibidir:
- Sınıfı ile aynı ismi taşımak zorundadır
- Geriye döndürülen bir değeri yoktur
- Farklı parametrelerle aynı isimden birden çok constructor oluşturulabilir
Yapıcı Metot Tanımlaması
Küçük bir örnek üzerinden constructor işlemini ele alalım.
Sağ kısımda User isminde bir class oluşturulmuş ve yine User isminde yapıcı metot tasarlanmıştır. Sol tarafta ise User sınıfından user adında bir nesne türetilmiştir. Program ilk olarak sağdan okumaya başladığı için new User() kısmını, sağ taraftaki, yani sınıfın yapıcı metoduna işaret eder ve içerisindeki kodları çalıştırır. Kodların çalışması bittikten sonra ise derleyici geri dönerek user adında (sol taraftaki nesne ismi) referansı oluşturur.
Nesne oluşturulduktan sonra ilk olarak yapıcı metodun çalıştırılmasıyla alakalı aşağıdaki çıktı ele alınabilir.
User sınıfından oluşturulan user nesnesi ilk çalıştırıldığında yapıcı metodun içerisine düşer ve oradaki kodları çalıştırır. Örnek olması açısından içerisine “Yapıcı metot çalıştı” yazdırarak bu mesajın çıktısını üretmeyi amaçladım.
Constructor metotların aynı isimde farklı parametrelerle birden fazla kez tanımlanmasından bahsetmiştim. Aşağıdaki örnekte buna açıklık getirelim.
User sınıfı içerisinde Name ve Code olmak üzere iki tane field ekledim. Bir önceki örnekte parametresiz olan User() yapıcı metoduyla birlikte bu sefer User(string code, string name) yapıcı metodunu da ekledim. Main sınıfında ise ikinci oluşturduğum yapıcı metot üzerinden sınıf türeterek Code ve Name parametrelerini gönderdim. Program çalıştığında ilgili yapıcı metot içerisindeki kodları okudu ve user nesnesini referans alarak çalıştırma tamamlandı.
Özetle constructor metotlar ilgili sınıftan nesne oluşturulduğunda ilk çalıştırılan metotlardır. Özellikle tanımlanmasa bile program çalışma anında default null olacak şekilde arka planda constructor oluşturur. Projedeki ihtiyaçlara göre farklı işlevleri yerine getirecek yapıcı metot örnekleri çoğaltılabilir.
Bu yazımızda OOP’nin önemli konularından biri olan Constructor konusuna değindik. Bir diğer yazımızda yine çokça ihtiyaç duyulan “Interface” konusunu ele alacağız.
Yazı için düşünce, görüş ve önerilerinizi yorumlarda belirtebilirsiniz, bir sonraki yazıda görüşmek üzere…
Kaynaklar :
[1] https://emrecelen.com.tr/c-sharp-constructor-nedir/