📘 7.2 – private Değişken, public Özellik Kullanımı
🔹 Açıklama:
Nesne tabanlı programlamada en temel güvenlik ve yapılandırma tekniklerinden biri, sınıf içindeki verileri private anahtar sözcüğüyle dış erişime kapatarak, bu verilere yalnızca public özellikler (property) aracılığıyla ulaşmaktır. Bu sayede:
- Değişkenler doğrudan dışarıdan değiştirilemez
- Verilere kontrollü, doğrulanmış erişim sağlanır
- Proje büyüdükçe veri akışı denetlenebilir olur
Windows Forms uygulamalarında bu yapı, formdan alınan verilerin sınıflarda saklanması, gösterilmesi veya işlenmesi gibi durumlarda kritik rol oynar.
📍 Kullanım Alanları:
- Kullanıcı adı, şifre gibi güvenli verilerin saklanması
- Form verilerinin nesne içinde tutulması
- Kontrollerle veri doğrulama işlemleri
- Nesneye dayalı veri modelleri (Model katmanı)
🎯 Kazanımlar:
- private değişken nedir, neden kullanılır öğrenilir
- public özellik aracılığıyla veri erişimi pratiği yapılır
- Formdan alınan verileri nesnelerle eşleştirme alışkanlığı gelişir
- Geliştirilebilir ve hataya dayanıklı yazılım temelleri atılır
🧪 7.2 – private Değişken, public Özellik: Uygulamalı 5 Örnek
📌 Örnek 1: Temel Kullanım
🎯 Amaç:
Bir private değişkenin yalnızca public özellik üzerinden erişilebildiğini göstermek.
💻 Kod:
public class Ogrenci
{
private string ad; // dışarıdan erişilemez
public string Ad // dışarıdan sadece bu property ile erişilir
{
get { return ad; }
set { ad = value; }
}
}
📝 Açıklama:
ad değişkeni doğrudan erişilemez. ogr.Ad = “Ahmet” gibi atamalar yalnızca Ad özelliği üzerinden yapılabilir.
📌 Örnek 2: Sayısal Veri Üzerinde İşlem
🎯 Amaç:
Kullanıcının yaşını güvenli biçimde saklamak.
💻 Kod:
public class Kisi
{
private int yas;
public int Yas
{
get { return yas; }
set
{
if (value >= 0 && value <= 120)
yas = value;
else
yas = 0; // geçersiz yaş kontrolü
}
}
}
📝 Açıklama:
Yaş bilgisi mantıklı sınırlar dışında girildiğinde değer kabul edilmez. Giriş kontrolü set bloğuna alınmıştır.
📌 Örnek 3: Form Üzerinden Kullanım
🎯 Amaç:
Formda girilen ad-soyad bilgisinin private alanda saklanması.
🎨 Form Elemanları:
- txtAdSoyad (TextBox)
- btnKaydet, lblDurum
💻 Kod:
public class Kullanici
{
private string adSoyad;
public string AdSoyad
{
get { return adSoyad; }
set { adSoyad = value.Trim(); }
}
}
// Form tarafı
private void btnKaydet_Click(object sender, EventArgs e)
{
Kullanici k = new Kullanici();
k.AdSoyad = txtAdSoyad.Text;
lblDurum.Text = "Kayıt edildi: " + k.AdSoyad;
}
📝 Açıklama:
Formdan alınan veri doğrudan değil, property üzerinden nesneye atanır.
📌 Örnek 4: Salt Okunabilir Veriler
🎯 Amaç:
Dışarıdan değiştirilemeyen, sadece okunabilen bilgi tanımlamak.
💻 Kod:
public class Sistem
{
private readonly string sistemVersiyon = "1.0.0";
public string Versiyon
{
get { return sistemVersiyon; }
}
}
📝 Açıklama:
Versiyon bilgisi yalnızca okunabilir; dışarıdan set edilemez. Sistem bilgileri gibi sabit veriler için idealdir.
📌 Örnek 5: Birden Fazla Değerin Kontrolü
🎯 Amaç:
Bir nesne içinde birden fazla private alanın farklı özelliklerle kontrol edilmesi.
💻 Kod:
public class Araba
{
private string marka;
private int modelYili;
public string Marka
{
get { return marka; }
set
{
if (!string.IsNullOrEmpty(value))
marka = value;
}
}
public int ModelYili
{
get { return modelYili; }
set
{
if (value >= 1990 && value <= DateTime.Now.Year)
modelYili = value;
}
}
}
📝 Açıklama:
Her alan, kendi özelliği içinde kontrol edilerek hem güvenlik hem doğruluk sağlanır.
✅ Özet:
Bu örneklerle öğrenciler artık:
- private alanların dış müdahaleye nasıl kapatıldığını
- public özelliklerin veri kontrolü için nasıl kullanıldığını
- Form üzerindeki kullanıcı girdilerini nesneye güvenli şekilde aktarmayı
- Sınıfları sadece veri tutan değil, veriyi koruyan yapılar olarak görmeyi öğrendi