Nesne Yönelimli Programlama
İlk makalemde bir çok yazılım geliştirici arkadaşın bildiği bir konu olan Nesne Yönelimli Programlama’nın veya diğer bir ifade ile Nesneye Yönelik Programlama’nın temel kavramları olan Class , Object , Inheritance , Encapsulation gibi kavramları örneklendirerek anlatacağım..

Birçok yazılım geliştirci bu kavramları atlayarak programlama diline tabir yerindeyse balıklama dalıyor ve bu temel kavramları önemsemiyor fakat iş hayatında karşısına çıkması kaçınılmaz olan bu kavramların bilinmesi ve bunlarla ilgili projeler geliştirilmesi hem kodladığımızın dilin yapısını anlamada hem de kavram kargaşalarını önlemede bizlere büyük yararlar sağlamaktadır ayrıca Microsoft sertifikaları almak isteyen arkadaşların bu kavramları mutlaka bilmesi gerekmektedir.

Class’ları programla dillerinin bileşenleri olarak adlandırılabilir daha geniş bir tanımlama yaparsak ; class programlama dilinin kendine ait fonksiyonları ve özellikleri olan taslaklardır. Object ise class’lardan oluşturulmuş nesneler yani bir anlamda class’lardan türeyen ürünlerdir. Class’ların kendilerine ait özellikleri var demiştik ; bu özelliklere atanan değerler object’ler vasıtasıyla atanmaktadır. Yani en genel anlamda Object , class’ların özelliklerine ve fonksiyonlarına değer atayan nesnelerdir.






Kodumuza bakacak olursak ; öncelikle isimleri  KareAlma ve SonucBul olan 2 adet Property oluşturduk ve daha sonra KaresiniAl procedure’si oluşturarak proceduremizin içindeki SonucBul değşikenine değeri aktararak Form1 de bulunan BtnHesapla isimli butonumuzun Click eventinde değerimizi hesaplattık. Peki property içinde buluna set ve get değerleri ne işe yarıyor gibi bir soru aklınıza geliyorsa , bunun da cevabı:Get property’ye gelen değerleri okur, Set ise bu değerleri set eder yani yazar. Gördüğünüz gibi ilk textbox’a girilen değer BtnHesapla butonuna tıklandığı an karesi alınmış olarak ikinci textbox’a set edilir. 

Tabiki bu Class’ı nasil çagırdığımızı gösteren kod kısmı çok basit olmasına rağmen aşağıya eklemeyi uygun buldum.





Konuyu biraz daha derinleştirecek olursak class yapılarında bilinmesi gereken kavramlar karşımıza çıkacaktır.

Encapsulation:Property’ler oluştururken public , private gibi kavramlar kullandık , biz bunları Access Modifier olarak adlandırırız ve bunlar Encapsulation kavramının anlaşılması için mutlaka bilinmesi gereken konulardır. Ben yine de genel anlamda Encapsulation nedir onu tanımlayacağım. Class’ın içinde bulunan öğeleri Encapsulation olarak isimlendirdiğimiz yapı ile koruruz.

Private:Sadece kullandığımız class içinden erişebileceğimiz , private yapılan class’lara dışardan erişim yapılamaz. Class için geçerli olan durumlar aynı şekilde method’lar ve property’ler içinde geçerlidir. Eğer tanımlamamız private şeklinde ise , bu class’ı inherit eden başka bir class private olarak tanımlanan method ve property’leri kullanamayacaktır.

Public:Public isimli access modifier’e bütün classlardan erişilebilir. Ayrıca public olarak tanımlanan method ve property’ler içinde aynı özellik yani diğer bütün class’larden erişim yapılabilir.

Protected:Burda dikkat etmemiz gereken ufak bir fark var. Protected olarak tanımlanan method ve property’ler sadece o class içinde kullanılmasına rağmen bu class’ı inherit eden class’lar tarafından da kullanılabilmektedir. Bir diğer fark ise:class’lar protected olarak tanımlanamamaktadır.

Ayrica bir kavrama daha değinmekte yarar var diye düşünüyorum çünkü çoğumuzun duyduğu ama bilmediği bir kavram olan Constructor’dan bahsetmek istiyorum. Çok basit şekilde anlatırsak Constructor diğer formlardan veya class’lardan gelen parametrelere göre bulunduğu class’ta çalışacak olan ilk procedure’dir. Örneğin bizim class’ımızda KaresiniAl isimli procedure’miz bizim Constructor’ımızdır.

Gelelim şimdi inheritance kavramına: Eğer bir class’daki property’lerden veya methodlardan yararlanmak istersek ilk olarak class’ı inherit etmeliyiz yani o class’da neleri kullanacaksak onu bulunduğumuz formdan veya class’tan çağırmalıyız. Aşağıdaki resim bu konuda bize yardımcı olacaktır.



İlk makalem biraz kısa oldu ama bu genel kavramlarla başlamak istedim fakat tabiki bu kadar kısa değil bunlar. Birçok sitede görebileceğiniz bu kavramları derinleştirmek ve yazdığınız kodlarda bunları kullanmak sizin elinizde. Diğer makalede görüşmek üzere , hepinize iyi kodlamalar.
Yorum Yaz
Gönderen
Yorum