Encapsulation (Kapsülleme), Nesne Yönelimli Programlama'nın (OOP) temel ilkelerinden biridir. Kapsülleme, bir sınıfın verilerini (özelliklerini) ve bu verilere erişimi sağlayan metotları bir arada tutarak, verilerin dışarıdan doğrudan erişimini engelleyen bir tekniktir. Bu teknik, verilerin yalnızca kontrollü bir şekilde değiştirilmesini sağlar.
Kapsülleme, sınıf üyelerini (özellikler ve metotlar) dış müdahalelere karşı koruma altına alır. Verilere erişim, getter ve setter metotları veya get
ve set
erişimcileri aracılığıyla sağlanır. Böylece:
Aşağıda bir sınıfın kapsülleme prensibine uygun olarak nasıl tanımlandığını görebilirsiniz:
using System; class Person { // Private alanlar private string name; private int age; // Public özellikler (Properties) aracılığıyla kontrollü erişim public string Name { get { return name; } set { if (!string.IsNullOrEmpty(value)) { name = value; } else { Console.WriteLine("Ad boş bırakılamaz!"); } } } public int Age { get { return age; } set { if (value > 0) { age = value; } else { Console.WriteLine("Yaş pozitif bir sayı olmalıdır!"); } } } }
Aşağıdaki örnek, Person
sınıfını nasıl kullanacağınızı gösterir:
class Program { static void Main(string[] args) { Person person = new Person(); // Ad atama ve okuma person.Name = "Ali Veli"; Console.WriteLine($"Ad: {person.Name}"); // Geçerli yaş atama person.Age = 25; Console.WriteLine($"Yaş: {person.Age}"); // Geçersiz yaş atama person.Age = -5; // Uyarı mesajı verecek // Geçersiz ad atama person.Name = ""; // Uyarı mesajı verecek } }
Ad: Ali Veli Yaş: 25 Yaş pozitif bir sayı olmalıdır! Ad boş bırakılamaz!
Encapsulation için getter ve setter metotları da kullanılabilir:
class Person { private string name; // Getter metodu public string GetName() { return name; } // Setter metodu public void SetName(string value) { if (!string.IsNullOrEmpty(value)) { name = value; } else { Console.WriteLine("Ad boş bırakılamaz!"); } } }
Kapsülleme, gerçek dünya uygulamalarında sıkça kullanılır. Örneğin:
Encapsulation (kapsülleme), C# Nesne Yönelimli Programlama'nın (OOP) önemli bir ilkesidir. Verileri gizlemek ve bu verilere erişimi kontrollü bir şekilde sağlamak, kodun güvenliğini ve düzenini artırır. Kapsülleme, büyük ve karmaşık projelerde kodun okunabilirliğini ve sürdürülebilirliğini sağlar.