
Encapsulation bir nesnenin belirli özellik ve metotlarının erişiminin kısıtlanması ve saklanmasıdır. Bu kısıtlamalar kötü amaçlı kullanım ve istenmeyen veri girişlerini engeller. Metotlar yazısında erişim belirleyicilerinden(Access Modifiers) bahsetmiştim. Örneklere başlamadan önce bunlardan tekrar bahsetmek istiyorum çünkü bunları sıkça kullanacağız.
Erişim Belirleyiciler
- Public : Öğenin kod içerisindeki her yerden erişilebileceğini belirtir.
- Private : Öğenin sadece bulunduğu sınıf içerisinden erişilebileceğini belirtir.
- Protected : Öğenin bulunduğu sınıftan veya o sınıftan türetilen sınıflardan erişilebilebileceğini belirtir.
- Internal : Öğenin tanımlandığı namespace içerisinden her yerden erişilebilir.
Şimdi örnek üzerinden gidelim;


- Yukarıdaki örnekte Ogrenci adında bir class oluşturduk.
- Name,Surname ve Gender alanları(field) tanımladık.
- name adı ile property tanımladık ve burada kapsülleme gerçekleştirdik. Bu kapsülleme işlemi erişim belirleyicisi private olan Name içindir.
- 2 adet metot oluşturduk, NameSurname metodu ile return olarak Name+Surname verdik ve GenderValue metodu ile Gender property durumuna göre return verdik.
Şimdi bu class ile bir işlem gerçekleştirelim…

Yukarıda ilk olarak Ogrenci sınıfımızdan bir örnek(instance) nesne türettik. Daha sonra button click eventi ile birlikte textBox1 ve textBox2 içerisindeki değerleri türettiğimiz ogrenci1 nesnesine aktardık ancak burada dikkat edilmesi gerek nokta Name’e ulaşmak için name property kullanıldı.
Gender için ise if-else koşulumuzla birlikte hangi seçeneği işaretlediğimizi belirledik ve onu ogrenci1 instance nesnesi içerisine yazdırdık.
Kısaca;
Burada class yapısı, field, property ve metotları oluşturduk. Property ile kapsüllemeyi gerçekleştirdik. Daha sonra sınıftan örnek bir nesne türeterek bunun içerisine değerler atadık ve bunları kullandık. Burada önemli nokta kapsülleme olarak belirtilebilir, private olan field Name kapsüllendi ve daha sonra bu field’a name property’si ile ulaşıldı.