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.