Encapsulation Nedir?

Herkese selamlar uzun bir aradan sonra tekrardan buradayım. Bugün ki konumuz Encapsulation yani Türkçe litaretüre kapsülleme olarak geçmiş mihenk taşı kavramlardan birisi daha.

En kısa tabirle özetlememiz gerekirse. Encapsulation Classlarımız da ki Fieldlarımızın kontrollü bir şekilde dışarıya açılmasıdır. Biz yazılımcıların nesnelerimizi kontrolsüz değişime kapaması anlamına gelmektedir. Türkçesiyle kapsülleme de diyebiliriz. Bir kaç örnekle konuyu daha netleştirmeye çalışalım isterseniz. Bu yazımda son dönemlerde üstüne kafa yorduğum Java programlama dili üzerinden örnekler vereceğim.

Öncelikle “Student” isimli bir Class oluşturalım ve içerisine sırasıyla değerlerimiz yazalım. Son durumumuz aşağıda ki gibi

captionless image

Dikkat ederseniz bura da ki alanlarımızın Access modifier alanlarını public olarak verdik. Bu durum bu alanlarımızın dışardan, başka bir programcı tarafından veya 3.parti kişiler tarafından değiştirilebileceğini göstermektedir. Böyle bir senaryo da biz yazılımcıları bu alanları kontrol altına almamızı engellemektedir. İşte tam bu noktada “Encapsulation” dediğimiz kavram devreye giriyor diyebiliriz. Bir örnekle daha açıklamamız gerekirse Main methodumuz da ilgili sınıfı çağıralım ve bu alanlara bir değer atayalım isterseniz.

captionless image

Görüldüğü gibi istediğimiz değeri gerekli yerlere atamış olduk. Peki bunu kapsüllemiş olsaydık nasıl bir senaryo ile karşılaştırdık? Öncelikle gerekli alanlarımızı tekrar private yapalım ve alanlarımız için “Get” ve “Set” bloklarımızı oluşturalım.

captionless image

Evet tam bu noktada gerekli alanlarımızı kapsüllemiş, bir başka deyişle kontrol altına almış olduk. Main methodumuz da ki son görüntümüz aşağıda ki gibi IDE’miz bizim için gerekli alanları düzeltti.

captionless image

Şimdi ise “studentId” alanımıza bir kural yazalım. Encapsulation kavramını daha iyi anlayalım.

captionless image

Basit bir İf bloğu yardımıyla gerekli alanımızı. Gönderdiğimiz değerin 10 sayısına eşit olması için programımızı dallandırdık. Main methodun da gerekli alanlarımıza 10 sayısını gönderdiğimizde ilk bloğumuz çalışacak.

captionless image

10 Değerini gönderiyoruz ve konsol çıktımızı bu şekilde almış olduk. Yani programımız istediğimizi yapmış oldu.

captionless image

10'dan farklı bir sayı gönderdiğimizde ise programımızın çıktısı bu şekilde olacaktır.

captionless image

Umarım verdiğim örnekler Encapsulation konusunda sizleri biraz daha aydınlatmıştır diye düşünüyorum. Konu ile alakalı internette bir çok kaynağa ve daha detaylı örneklere ulaşabilirsiniz.

Tarık şurası eksik olmuş, burası şöyle olsa daha iyi olurdu dediğiniz konuları lütfen bana mail atın bir sonra ki yazımda görüşmek dileğiyle.

İletişim : Ledunv@protonmail.com