📘 8.4 – Kapsülleme ile Veri Güvenliği
🔹 Açıklama:
Kapsülleme (Encapsulation), nesne tabanlı programlamanın en güçlü yönlerinden biridir. Bu teknikle, kullanıcıdan alınan verilerin sınıf dışından doğrudan değil, sadece izin verilen yollarla değiştirilmesi sağlanır.
Önceki adımlarda kullanıcıdan alınan veriler doğrudan sınıfın özelliklerine atanıyordu. Bu bölümde artık kullanıcıdan alınan veri önce sınıf içinde doğrulanacak, ancak geçerliyse kabul edilecektir.
📍 Kullanım Alanları:
- Kullanıcının boş, geçersiz veya hatalı veri girişini engellemek
- Hassas alanlar (örneğin TC, numara, not vb.) için sınırlandırmalar getirmek
- Form kontrollerinden gelen veriyi daha kontrollü işlemek
- Geniş ölçekli projelerde veri tutarlılığını sağlamak
🎯 Kazanımlar:
- private alanlar ve get-set özellikleri ile güvenli veri aktarımı
- Sınıf içinde değerleri doğrulama ve koşullu atama
- Yanlış verileri filtreleyerek uygulama çökmesini engelleme
- Girişlerde kurallar tanımlayarak profesyonel veri işleme becerisi
🧪 8.4 – Kapsülleme ile Veri Güvenliği: Uygulamalı 5 Örnek
📌 Örnek 1: Numara Alanına Negatif Değer Engelleme
🎯 Amaç:
Kullanıcının negatif numara girmesi engellenir.
💻 Kod:
public class Ogrenci
{
private int numara;
public int Numara
{
get { return numara; }
set
{
if (value > 0)
numara = value;
}
}
}
📝 Açıklama:
Sadece pozitif numaralar kabul edilir. Olumsuz giriş denemeleri görmezden gelinir.
📌 Örnek 2: Ad ve Soyad İçin Minimum Uzunluk
🎯 Amaç:
Ad ve soyad boş veya çok kısa girilmesin.
💻 Kod:
private string ad;
public string Ad
{
get { return ad; }
set
{
if (!string.IsNullOrWhiteSpace(value) && value.Length >= 2)
ad = value;
}
}
📝 Açıklama:
Veri atanırken kontrol yapılır. Şart sağlanmazsa değer ataması yapılmaz.
📌 Örnek 3: Not Ortalamasını Hesaplayan ve Notları Sınırlayan Sınıf
🎯 Amaç:
Notlar 0-100 aralığında olmalı.
💻 Kod:
private double not1;
public double Not1
{
get { return not1; }
set
{
if (value >= 0 && value <= 100)
not1 = value;
}
}
📝 Açıklama:
Kullanıcı yanlışlıkla 150 yazarsa sınıf bu veriyi reddeder.
📌 Örnek 4: Otomatik Büyük Harfe Çevirme
🎯 Amaç:
Ad ve soyad bilgisi her zaman düzgün biçimde girilmiş olsun.
💻 Kod:
private string soyad;
public string Soyad
{
get { return soyad; }
set
{
if (!string.IsNullOrEmpty(value))
soyad = value.ToUpper();
}
}
📝 Açıklama:
Girilen soyad otomatik olarak büyük harfe çevrilerek tutarlı veri elde edilir.
📌 Örnek 5: Bilgileri Doğrulamadan Nesneye Aktarmayı Engelleme
🎯 Amaç:
Tüm alanların doğru girildiğinden emin olunmadan listeye eklenmesin.
💻 Kod (Form kısmında):
Ogrenci ogr = new Ogrenci();
ogr.Ad = txtAd.Text;
ogr.Soyad = txtSoyad.Text;
ogr.Numara = Convert.ToInt32(txtNumara.Text);
if (ogr.Ad == null || ogr.Soyad == null || ogr.Numara == 0)
{
MessageBox.Show("Lütfen geçerli bilgiler giriniz!");
return;
}
ogrenciListesi.Add(ogr);
📝 Açıklama:
Sınıf, geçersiz veriyi reddettiği için form tarafında bu kontrol gerekli olur.
✅ Özet:
Bu bölümde öğrenciler:
- Kapsülleme yoluyla veriyi sınıf içinde kontrol etmeyi
- Yanlış girişleri otomatik olarak filtrelemeyi
- Uygulama bütünlüğü ve veri doğruluğu için sınıfların ne kadar önemli olduğunu
- get-set ile işlevsel güvenlik duvarı oluşturmayı öğrendiler.
Pingback : A'DAN Z'YE NTP - İÇİNDEKİLER - Hasan TANDOĞAN