Nesne Yönelimli Programlama – 2 Encapsulation

Bu yazımda encapsulation (kapsülleme) konusuna değineceğim. Bir önceki makalemde bahsettiğim Telefon sınıfını hatırlayalım. Sınıfımızın içinde bulunan özellikleri public erişim düzenleyicisi ile tanımlamıştık. Bunun bize yaratabileceği bazı sıkıntılar var. Mesela telefonun rengini başka yerden değiştirebiliyoruz. Peki bunu aşmak için ne yapabiliriz?

Bunu aşmak için ilk olarak değişkenlerimizi private yapabiliriz. İçerideki değişkenlere erişmek için ise public metotlar yazabiliriz. Nasıl mı?

Aslında burada yaptığımız şey bir kapsülleme işlemi. Gerçek dünyadan örnek vermek gerekirse; televizyon kumandalarının içerisinde çeşitli devreler, pil yuvası vardır. Ama bunların hepsi bir kapak ile dış dünyadan, son kullanıcıdan soyutlanmıştır. Çünkü içerisinde ne bulunduğu bizi pek de ilgilendirmez. Kanalları değiştirmesi sesi açıp kapatması yeterlidir bizim için.

Peki biz her özellik için oturup metot mu yazmalıyız? Yok mu bunun daha kolay bir yolu? Elbette var. Belkide daha önceki projelerimizde de çokça kullandığımız property kavramı devreye giriyor. Yukarıdaki kodu property kullanarak tekrar yazalım.

Yukarıdaki get ve set bloklarından sadece birini kullanarak read-only ya da write-only özellikler yaratabiliriz. Kısa yol kullanmak isteyenler ise pro tab tab yaparak property yaratabilirler.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir