C#'da encapsulation, bir nesnenin durumunu (fields) ve davranışlarını (methods) bir arada tutarak dışarıdan erişime kapatma ve sadece belirlenen yollarla erişilmesine izin verme işlemidir. Bu, nesnenin iç yapısının gizlenmesini ve sadece belirli bir arayüz üzerinden etkileşimde bulunulmasını sağlar. Encapsulation, bir nesnenin iç durumunun (state) korunmasını ve istenmeyen değişikliklerden korunmasını sağlar, bu da daha güvenli ve sürdürülebilir bir kod geliştirmeye olanak tanır. Bu genellikle private alanlar ve public metotlar kullanılarak gerçekleştirilir. Bu sayede, nesne dış dünyaya sadece belirli bir arayüzle sunulur ve iç detayları gizlenir, böylece daha az bağımlılık ve daha iyi bir kod bakımı sağlanır.
Gizlilik (Privacy): Encapsulation, bir sınıfın içindeki alanları ve yöntemleri, sadece o sınıfın içinden erişilebilir kılarak gizler. Bu, sınıfın dışındaki kodun doğrudan bu alanlara ve yöntemlere erişimini önler ve dolayısıyla bu alanların ve yöntemlerin yanlışlıkla değiştirilmesini veya kullanılmasını engeller. C#’da bu genellikle access modifiers (erişim belirleyiciler) kullanılarak yapılır; örneğin, private, protected, public...
Bütünlük (Integrity): Encapsulation, nesne içindeki verilerin (fields) ve davranışların (methods) bir arada gruplandırılmasını sağlar. Bu, nesnenin durumu ve davranışı arasındaki mantıksal ilişkiyi korur. Böylece, nesne dışındaki kod, nesnenin iç yapısını bilmeksizin sadece belirli arayüzlerle etkileşimde bulunabilir.
Kod Bakımı (Maintenance): Encapsulation, kodun bakımını kolaylaştırır çünkü nesnenin iç yapısı (implementation details) gizlidir ve değişebilir. Yani, bir sınıfın iç yapısını değiştirdiğinizde, bu değişiklik sadece sınıfın kendisiyle etkileşen kodu etkiler, dışındaki kodu etkilemez. Bu, kodun daha az bağımlı ve daha kolayca değiştirilebilir olmasını sağlar.
Class (Sınıf) ve Object (Nesne)
Fields (Alanlar) ve Properties (Özellikler)
Access Modifiers (Erişim Belirleyiciler)
Methods (Yöntemler)
Sınıfın işlevselliğini tanımlayan fonksiyonlardır. Yöntemler, belirli görevleri yerine getirmek için kullanılır. Bir sınıfın veri üyeleri (fields) üzerinde işlemler gerçekleştirebilirler.
Encapsulation (Kapsülleme)
Encapsulation, verilerin ve yöntemlerin bir sınıf içinde bir araya getirilmesi ve dış erişimden gizlenmesi işlemidir. Bu, sınıfın iç durumunun korunmasını ve kontrol edilmesini sağlar. Encapsulation, verilerin doğruluğunu ve güvenliğini sağlamada önemli bir rol oynar.
public class Car
{
// Private field
private string brand;
private int speed;
// Public property with encapsulation
public string Brand
{
get { return brand; }
set
{
if (!string.IsNullOrEmpty(value))
{
brand = value;
}
}
}
// Public property with encapsulation
public int Speed
{
get { return speed; }
set
{
if (value >= 0)
{
speed = value;
}
}
}
// Public method
public void Accelerate(int increment)
{
Speed += increment;
}
}
Encapsulation, C#'daki nesne yönelimli programlamanın temel prensiplerinden biridir ve kodun daha güvenli, daha anlaşılır ve daha sürdürülebilir olmasına yardımcı olur. Bu nedenle, iyi bir C# geliştiricisi olmak için encapsulation prensiplerini anlamanız ve uygulamanız önemlidir.