7.4 – Bilgi Gizleme Örneği


📘 7.4 – Bilgi Gizleme Örneği


🔹 Açıklama:

Bilgi gizleme (Information Hiding), nesne tabanlı programlamanın en önemli ilkelerinden biridir. Bu yaklaşımda amaç; sınıf içindeki verilerin dışarıdan doğrudan erişilmesini engelleyerek yalnızca izin verilen yollarla işlem yapılmasına olanak tanımaktır.

C# dilinde bu ilke, private değişkenler ve public get-set özellikleriyle hayata geçirilir.

Bilgi gizleme sayesinde:

  • Kullanıcı ya da başka sınıflar tarafından sınıf içi veriler bozulamaz
  • Kod yeniden kullanılabilir ve güvenli hale gelir
  • Kod karmaşıklığı azaltılarak bağımlılık en aza indirilir

📍 Kullanım Alanları:

  • Bankacılık sistemlerinde bakiye ve şifre gibi hassas verilerin korunması
  • Eğitim uygulamalarında sınav puanlarının dışarıdan değiştirilmesini engelleme
  • Ürün stok miktarlarının yalnızca sistem tarafından değiştirilebilmesi
  • Web form uygulamalarında kullanıcı verilerinin kontrol altında tutulması

🎯 Kazanımlar:

  • Bilginin kullanıcıdan nasıl saklandığını kavramak
  • private erişim düzeyinin güvenlikteki rolünü öğrenmek
  • Dışarıya yalnızca gerekli bilgilerin açılmasının önemini kavramak
  • Form üzerinden alınan verileri bilgi gizleme ilkesiyle harmanlayarak kullanmak

🧪 7.4 – Bilgi Gizleme: Uygulamalı 5 Örnek


📌 Örnek 1: Banka Hesabında Bilgi Gizleme

🎯 Amaç:

Bakiyenin doğrudan erişime kapatılıp yalnızca işlem metodlarıyla kontrol edilmesi.

💻 Kod:

public class BankaHesabi
{
    private double bakiye;

    public void ParaYatir(double miktar)
    {
        if (miktar > 0)
            bakiye += miktar;
    }

    public void ParaCek(double miktar)
    {
        if (miktar <= bakiye)
            bakiye -= miktar;
    }

    public double BakiyeyiGoster()
    {
        return bakiye;
    }
}

📝 Açıklama:

bakiye değişkenine doğrudan erişim yok. Yalnızca sınıf içindeki metodlarla kontrol sağlanır. Bu tam anlamıyla bilgi gizlemenin özüdür.


📌 Örnek 2: TC Kimlik Bilgisi Gizleme

🎯 Amaç:

Kullanıcının TCKN bilgisinin dışarıdan okunamaması ve sadece doğrulama ile atanması.

💻 Kod:

public class Vatandas
{
    private string tckn;

    public void TCKN_Ata(string deger)
    {
        if (deger.Length == 11)
            tckn = deger;
    }

    public bool TCKN_Kontrol()
    {
        return !string.IsNullOrEmpty(tckn);
    }
}

📝 Açıklama:

TC kimlik numarası dışarıdan okunamaz. Sadece doğru formatta girildiğinde saklanır.


📌 Örnek 3: Sınıf Dışı Müdahaleyi Engelleme

🎯 Amaç:

Bir sınıfın verilerine başka sınıflardan doğrudan erişimi engellemek.

💻 Kod:

public class Ogrenci
{
    private int not;

    public void NotAyarla(int deger)
    {
        if (deger >= 0 && deger <= 100)
            not = deger;
    }

    public string NotDurumu()
    {
        return not >= 50 ? "Geçti" : "Kaldı";
    }
}

📝 Açıklama:

not verisi sadece sınıf içinden işlenebilir. Dışarıdan değiştirme veya okuma yapılamaz.


📌 Örnek 4: Şifre Değiştirme ve Doğrulama

🎯 Amaç:

Şifre saklamak ve yalnızca doğrulama sonrası işlem yapmak.

💻 Kod:

public class Kullanici
{
    private string sifre;

    public void SifreDegistir(string eskiSifre, string yeniSifre)
    {
        if (sifre == eskiSifre && yeniSifre.Length >= 6)
            sifre = yeniSifre;
    }

    public bool GirisKontrol(string girisSifresi)
    {
        return sifre == girisSifresi;
    }
}

📝 Açıklama:

Şifre ne okunabilir ne de doğrudan değiştirilebilir. Tüm kontrol sınıf içinde kalır.


📌 Örnek 5: Form Üzerinden Bilgi Gizleme Senaryosu

🎨 Form Elemanları:

  • txtIsim, txtMaas, btnKaydet, lblSonuc

🎯 Amaç:

Maaş bilgisi kullanıcıya gösterilmeden işlenir.

💻 Kod:

public class Calisan
{
    private double maas;

    public void MaasAyarla(double deger)
    {
        if (deger >= 8500)
            maas = deger;
    }

    public string Bilgi()
    {
        return "Maaş başarıyla kaydedildi.";
    }
}

// Form tarafı
private void btnKaydet_Click(object sender, EventArgs e)
{
    Calisan c = new Calisan();
    c.MaasAyarla(Convert.ToDouble(txtMaas.Text));
    lblSonuc.Text = c.Bilgi();
}

📝 Açıklama:

Form üzerinden maaş girilir, ama bu bilgi hiçbir zaman doğrudan gösterilmez. Yalnızca sınıf içindeki işlem tamamlandığında kullanıcıya bilgilendirme yapılır.


✅ Özet:

Bu örneklerle öğrenciler artık:

  • Veri saklamanın sadece erişimi engellemekten ibaret olmadığını
  • Bilginin sadece gereken yerde işlenip sunulmasının güvenli yazılım açısından önemini
  • Gerçek hayatta gizlenmesi gereken verilere nasıl davranılması gerektiğini öğrendiler.

Leave a Reply