merhaba arkadaşlar.
c++ yeni öğrenmeye başladım ve nesneleri konusunda kafama bir soru takıldı. biz nesne içinde değişkenleri neden private olarak tanımlıyoruz ??
direkt public kısmında tanımlanan değişkenler de var. lakin örneklerin çoğunda private olarak tanımlayıp public kısmında yapıcı fonsyonlarla atama yapıyoruz. private tanımlamanın avantajı nedir ki bu zahmetlere giriyoruz?
Sınıfın üyesi olmayan bir fonksiyon tarafından bu değerin değişmesini engellemek için.
Örneğin:
bir kaç değişkenin var ve bu değişkenlerin değerleri birbirlerine bağlı olarak değişiyor. Birisinde bir değişiklik olursa, diğerlerinin de değişmesi gerek.
Eğer bu değişkenlere direk ulaşılabilirse, yanlışlıkla bu değer değiştirilebilir ve program çökebilir.
Olay dille değil, nesne yönelimli tasarımla ilgili. Nesne yönelimli tasarımda, bir nesnenin iç işlerine karışılması mümkün olduğunca engellenir. Bu yaklaşım, hatalı bir tasarımın ve ileride çıkabilecek diğer sorunların önüne geçer. Basit örneklerde veya ufak programlarda saçma gibi gelebilir ama iş büyüdükçe ciddi fayda sağlar.
Python'un, konuyla ilgili biraz daha farklı bir yaklaşımı var gerçi. Burada (http://tomayko.com/writings/getters-setters-fuxors) değinilmiş.
Wikipedia'da konuyla ilgili ayrıntılı bilgi var: http://en.wikipedia.org/wiki/Encapsulation_%28object-oriented_programming%29 (http://en.wikipedia.org/wiki/Encapsulation_%28object-oriented_programming%29)
teşekkürler arkadaşlar.
daha önce c++ dilinde hiç bir büyük projede yer almadığım için anlamakta zorlanmışım. şimdi biraz anladığımı düşünüyorum zamanla inşalalh daha iyi yerleşecektir kafama.
linkler için de ayrıca teşekkür ederim, göz atacağım hocam.