Bir önceki Nesne Tabanlı Programlama konusunda Çok Biçimlilik Polymorphism Nedir ve Örnek yazısını paylaşmıştım.

Kapsülleme, kendi amacına göre yönettiği kod ve veriyi birbirine bağlayan, kod ve veriyi dış kaynaklı karışıklık ve hatalı kullanımdan koruyan bir sistemdir. Dolayısıyla kod ve veri bir bütün olarak tutulur ve saklanır. Günlük yaşantımızda kullandığımız kapsüllü bir antibiyotiği örnek verebiliriz. Mantık aynıdır. Antibiyotiğin içindeki toz dış etkenlerden korunmak için kapsülle ambalajlanmıştır.

Nesne tabanlı programlamada kod ve veri kapsüllemeyle birbirine bağlanabilir. Yapılacak işlemler için gerekli kod ve veri kapsülün içinde vardır. Kod ve veri kapsüllemeyle birbirine bağlandığında bir nesne (object) meydana gelir.

Nesne tabanlı programlamada kapsülleme birimi sınıftır (class). Sınıf, verileri ve bu verilerle işlem yapılacak kodları belirler. Diğer bir deyişle, sınıf bir nesnenin ne şekilde yapılandırılacağını belirten planları içerir.

Kod ve veri sınıfın üyeleridir (members). Metot ise bir alt programdır. Kısaca hatırlatmak gerekirse programlama dillerinde kullanılan fonksiyonlar nesne tabanlı programlamada metot adını almıştır.

Örnek

Temel sınıfta protected erişim belirteciyle sayi adlı bir değişken oluşturularak ilk değeri atanmıştır. Temel sınıfın karakteristiğini taşıyan Tureyen sınıf oluşturularak erişim metodunda her iki sınıftan t ve tr adlı iki üye değişken tanımlanmıştır. Bu iki değişkene ilk değerleri atanarak program derlendiğinde hata meydana gelmektedir.

namespace Kapsulleme
{
    class Temel
    {
        protected double sayi = 100.2;
    }

    class Tureyen : Temel
    {
        void erisim()
        {
            Temel t = new Temel();
            Tureyen tr = new Tureyen();
            t.sayi = 54.3; //Bu satırda hata olur.
            tr.sayi = 55.5; //Bu satırda hata olmaz.
        }
    }
}

Çünkü temel sınıftan oluşturulan t üye değişkeni türeyen sınıfta tanımlandığı için protected erişim belirteçli sayi değişkeninin içeriğini değiştiremeyecektir. Ancak, türeyen sınıftan oluşturulan tr üye değişkeni sayi değişkeninin içeriğini değiştirebilir. Böylece kapsülleşme gerçekleştirilmiş olur. Programın çalışması için t.sayi ile başlayan satırın önüne “//” yazarak yorum satırı olarak belirtip derlemeye dahil edilmemesi gerekir.

namespace Kapsulleme
{
    class Temel
    {
        protected double sayi = 100.2;
    }

    class Tureyen : Temel
    {
       static void Main()
        {
            Temel t = new Temel();
            Tureyen tr = new Tureyen();
            // t.sayi = 54.3; //Bu satırda hata olur.
            tr.sayi = 55.5; //Bu satırda hata olmaz.
        }
    }
}

Bir Cevap Yazın