
Ekim 13, 2009 16:25 by
molks
Object oriented programming'e giriş yazisinda bir class yazarak devam edicez demiştik şimdi o class'imizi yaziyoruz.Öncelikli olarak vs da bir windows uygulamasi açalim ve uygulamamıza bir class ekleyelim , class in adini da OyuncakAyi yapalim ;

Şimdi biz oyuncak ayi fabrikasi oldugumuza göre oyuncak ayimizi tasarlamaya başlayalim ; öncelikli olarak oyuncak ayimizin üretimkodu, rengi , kumaşi , boyu şeklinde 4 tane özelliği olsun , bunun dişinda ayimiza ses yüklemek isteyebiliriz bunun için boolean tipinde konuşuyorMu diye bir özelliğimiz daha olsun.Bunun dışında oyuncak ayimizin birde konuş diye bir methodu olsun.Eğer konuşuyorMu true ise ve biz konuşmasını istersek oyuncak ayimiz konuşsun ;

öncelikli olarak bu property lerinin yanında ki get ve set lerde ne oluyor,üretim kodunda neden bişey yok,neden o private diğerleri public, aman alahim
öncelikle public ve private bildiğimiz gibi birer erişim belirleyicisi yani access modifiers.. get property nin değerinin okunabileceği anlamına geliyor , set ise property ye bir değer atanabileceği anlamına geliyor. Mesela MessageBox in show methodunu bir get işlemi gibi görebiliriz , show ile değeri okur ekrana basarız , ama methoddan dönen bir değeri alip bir değişkene yüklemek ise set işlemidir. peki biz property nin dişardan set lenmesini kapatirsak ne olur? - tabiyki ReadOnly olur .
Peki neden böle birşeye ihtiyaç duyayim.yani neden bir özelliğin dişardan sadece değerinin okunabilmesini istiyim ama değeri değiştirilemesin ?? Örnekteki Uretimkodu property si tam olarak böyle bir özellik işte.diyelim ki üreteceğim bütün ayilarin üretimKodu 80632 , ben neden bu üretim koduna dışardan müdahale edilmesine izin vereyim? sadece değerinin okunabilmesine izin veririm o kadar.Veya bunun tam terside olabilir..Özelliğin değerini okuyamassın ama sadece set leyebilirsin.
İşte bu bahsettiğimiz kavramlar oop de encapsulation diye ifade ediliyor.biz buna hiding implimentation details from presantation da diyebiliriz.Yani çalışma ayrıntılarını sunumdan gizlemek. Mesela arabanın gazına basarken , iç aksamında neler olup bittiğini bilmemende oldugu gibi.bunları bilmenede gerek yoktur.sen sadece gaza basman gerektiğini bilirsin ve araba gider.Uretim kodunu kolay yoldan encapsule etmek için uzerine uzerine sağ tıklıyoruz => refactor ve encapsulate field diyoruz.

gördüğünüz gibi UretimKodu değikenine artik sadece class ın içinden ulaşılabiliyor, dişardan değerini almak istediğimizde UretimKodu1 ismini kullanabilicez ve hiçbir setleme işlemi yapamıycaz değer sadece get edilebilecek.
cecabddb-5768-4551-bad2-7f740693c8a7|4|5.0