İ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.
|