C# Kapsülleme

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda kapsülleme konusunu anlatacağım. Hadi başlayalım !
Table of Contents
Tanımı
C# programlama dilinde kapsülleme (encapsulation) nesne yönelimli programlamanın temel prensiplerinden biridir. Kapsülleme, bir sınıfın içerisindeki veriye ve bu veriye erişim yöntemlerine yönelik bir yaklaşım olarak tanımlanabilir. Kapsülleme, sınıfın içindeki veriye erişimin kontrol edilmesine ve sınıfın verilerinin istenmeyen bir şekilde değiştirilmesine engel olur.
C# programlama dilinde kapsülleme, özellikler (properties) ve yöntemler (methods) kullanılarak sağlanır. Özellikler, bir sınıfın içindeki verilerin okunmasına ve yazılmasına izin veren yapılardır. Yöntemler ise, bir sınıfın içindeki verilere erişmek için kullanılan metotlardır.
Örnek Sınıf
Aşağıda, C# programlama dilinde kapsülleme kavramına ilişkin örnek kodlar verilmiştir.
public class BankAccount
{
private decimal _balance;
public decimal Balance
{
get { return _balance; }
set
{
if (value < 0)
throw new ArgumentException("Balance cannot be negative.");
_balance = value;
}
}
public void Deposit(decimal amount)
{
Balance += amount;
}
public void Withdraw(decimal amount)
{
if (Balance < amount)
throw new ArgumentException("Insufficient funds.");
Balance -= amount;
}
}
Kod Açıklamaları
Yukarıdaki örnek kodda, BankAccount sınıfı oluşturulmuştur. Bu sınıfın içindeki _balance değişkeni private olarak tanımlanmıştır. Dışarıdan erişilemez bir şekilde tutulması için private olarak tanımlanmıştır.
Sınıfın Balance özelliği, sınıfın _balance değişkenine erişim sağlar. Bu özellik, get ve set erişimcileriyle tanımlanmıştır. Set erişimcisi, özelliğe yeni bir değer atanırken çalışacak kodu içerir. Yukarıdaki örnekte, Balance özelliğine atanacak değer negatif ise ArgumentException fırlatılır.
BankAccount sınıfı ayrıca, Deposit ve Withdraw yöntemlerini içerir. Deposit yöntemi, hesaba para yatırmak için kullanılır. Withdraw yöntemi, hesaptan para çekmek için kullanılır. Withdraw yöntemi de, bakiyeden çekilecek tutarın bakiyeden büyük olması durumunda ArgumentException fırlatır.
Kullanım Alanı
Kapsülleme, bir sınıfın içindeki verilere erişimi kontrol etmek için önemli bir araçtır. Sınıfın verileri, özellikler ve yöntemler kullanılarak kontrol edilir. Böylece, sınıfın verileri istenmeyen bir şekilde değiştirilemez ve doğru bir şekilde kullanılır.
Kapsülleme, nesne yönelimli programlamanın temel prensiplerinden biridir. Bu prensip, programlama dilindeki sınıf ve nesne yapısını kullanarak verilerin erişimini kontrol etmeyi amaçlar. Kapsülleme, sınıfın içindeki verilere erişim kontrolü sağlar ve nesnenin içerdiği verilerin istenmeyen bir şekilde değiştirilmesini önler.
C# programlama dilinde kapsülleme özellikle büyük ölçekli projelerde çok önemli bir konudur. Bu tür projelerde, bir sınıfın içindeki verilere doğrudan erişim, programın kararlılığına ve güvenilirliğine zarar verebilir. Bu nedenle, kapsülleme kullanarak verilere erişimi kontrol altına almak, programın daha güvenli ve daha düzenli çalışmasını sağlar.
Aşağıda, C# programlama dilinde kapsülleme özelliğinin kullanıldığı örnek bir sınıf verilmiştir.
public class Person
{
private string _name;
private int _age;
public string Name
{
get { return _name; }
set { _name = value; }
}
public int Age
{
get { return _age; }
set
{
if (value < 0)
{
throw new ArgumentException("Age cannot be negative.");
}
_age = value;
}
}
public void PrintPersonInfo()
{
Console.WriteLine("Name: " + _name + ", Age: " + _age);
}
}
Yukarıdaki örnek kodda, Person sınıfı oluşturulmuştur. Bu sınıfın içindeki _name ve _age değişkenleri private olarak tanımlanmıştır. Dışarıdan erişilemez bir şekilde tutulması için private olarak tanımlanmıştır.
Sınıfın Name ve Age özellikleri, sınıfın _name ve _age değişkenlerine erişim sağlar. Bu özellikler, get ve set erişimcileriyle tanımlanmıştır. Set erişimcisi, özelliğe yeni bir değer atanırken çalışacak kodu içerir. Yukarıdaki örnekte, Age özelliğine atanacak değer negatif ise ArgumentException fırlatılır.
Person sınıfı ayrıca, PrintPersonInfo yöntemini içerir. Bu yöntem, kişinin adını ve yaşını ekrana yazdırmak için kullanılır.
Sonuç
Kapsülleme, bir sınıfın içindeki verilere erişimi kontrol etmek için önemli bir araçtır. Sınıfın verileri, özellikler ve yöntemler kullanılarak kontrol edilir. Böylece, sınıfın verileri istenmeyen bir şekilde değiştirilemez ve doğru bir şekilde kullanılır. Bu da programın daha güvenli ve daha düzenli çalışmasını sağlar.
Evet C# ile kapsülleme bu şekilde olmakta. Tüm C# yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.