📘 7.5 – Formdan Nesne Oluşturma
🔹 Açıklama:
Gerçek dünya uygulamalarında, kullanıcı arayüzü (Form) üzerinden alınan verilerin sınıflar aracılığıyla işlenmesi hem düzenli hem de güvenli bir program yapısı sağlar. Bu süreçte:
- Form üzerindeki kontrollerden (TextBox, ComboBox, NumericUpDown vb.) alınan değerler bir nesneye aktarılır
- Nesne sınıfı içindeki kapsülleme kuralları (get-set) yardımıyla veriler işlenir
- Verilerin doğruluğu, eksikliği, biçimi gibi kontroller sınıf içinde yapılır
- Uygulama daha modüler, okunabilir ve hataya dayanıklı hâle gelir
📍 Kullanım Alanları:
- Form üzerinden kullanıcı, müşteri, öğrenci gibi verilerin alınması
- Satış, sipariş, rezervasyon vb. işlemler için veri modelleri oluşturulması
- Formu veri giriş noktası olarak kullanmak, işlemleri nesne bazında yönetmek
- Katmanlı mimariye hazırlık: Arayüz → Nesne → Veri İşleme → Veri Kaynağı
🎯 Kazanımlar:
- Form kontrollerinden alınan verileri nesnelere aktarma becerisi
- Nesne örneklerini (instance) yaratma ve bu örneklerde kapsülleme uygulama
- Gerçek senaryolarda kullanıcıdan alınan veriyi güvenli biçimde işleme
- Form mantığını sadece arayüz değil, veri işleme aracı olarak kavrama
- Sınıfları UI’dan bağımsız hâle getirerek kodun taşınabilirliğini artırma
🧪 7.5 – Formdan Nesne Oluşturma: Uygulamalı 5 Örnek
📌 Örnek 1: Öğrenci Kaydı Oluşturma
🎨 Form Elemanları:
- txtAd, txtSoyad, btnKaydet, lblBilgi
🎯 Amaç:
Formdan alınan ad ve soyadı bir Ogrenci nesnesine aktarmak.
💻 Kod:
public class Ogrenci
{
private string ad;
private string soyad;
public string Ad
{
get { return ad; }
set { ad = value.Trim(); }
}
public string Soyad
{
get { return soyad; }
set { soyad = value.Trim(); }
}
public string BilgiVer()
{
return $"Ad Soyad: {Ad} {Soyad}";
}
}
// Form tarafı
private void btnKaydet_Click(object sender, EventArgs e)
{
Ogrenci ogr = new Ogrenci();
ogr.Ad = txtAd.Text;
ogr.Soyad = txtSoyad.Text;
lblBilgi.Text = ogr.BilgiVer();
}
📝 Açıklama:
Formdan alınan veriler doğrudan değil, kapsüllenmiş özellikler üzerinden nesneye aktarılır.
📌 Örnek 2: Ürün Bilgisi Ekleme
🎨 Form Elemanları:
- txtUrunAdi, nudFiyat, btnEkle, lstUrunler
🎯 Amaç:
Ürün adını ve fiyatını bir sınıfa aktarıp liste kutusuna yazdırmak.
💻 Kod:
public class Urun
{
private string ad;
private decimal fiyat;
public string Ad
{
get { return ad; }
set { ad = value; }
}
public decimal Fiyat
{
get { return fiyat; }
set
{
if (value > 0)
fiyat = value;
}
}
public override string ToString()
{
return $"{Ad} - {Fiyat:C}";
}
}
// Form tarafı
private void btnEkle_Click(object sender, EventArgs e)
{
Urun u = new Urun();
u.Ad = txtUrunAdi.Text;
u.Fiyat = nudFiyat.Value;
lstUrunler.Items.Add(u);
}
📝 Açıklama:
ToString() metodu sayesinde ListBox içinde nesne doğrudan yazılabilir.
📌 Örnek 3: Kullanıcı Girişi ve Bilgi Gösterme
🎨 Form Elemanları:
- txtKullaniciAdi, txtEmail, btnGiris, lblDurum
🎯 Amaç:
Kullanıcı nesnesi oluşturulup, bilgi gösterimi sağlamak.
💻 Kod:
public class Kullanici
{
private string kullaniciAdi;
private string email;
public string KullaniciAdi
{
get { return kullaniciAdi; }
set { kullaniciAdi = value; }
}
public string Email
{
get { return email; }
set
{
if (value.Contains("@"))
email = value;
}
}
public string Bilgi()
{
return $"Kullanıcı: {KullaniciAdi}\nEmail: {Email}";
}
}
// Form tarafı
private void btnGiris_Click(object sender, EventArgs e)
{
Kullanici k = new Kullanici();
k.KullaniciAdi = txtKullaniciAdi.Text;
k.Email = txtEmail.Text;
lblDurum.Text = k.Bilgi();
}
📝 Açıklama:
Giriş doğrulaması sınıf içinde yapılır; form sadece veri kaynağıdır.
📌 Örnek 4: Maaş Bilgisi Hesaplama
🎨 Form Elemanları:
- txtAd, nudGun, btnHesapla, lblMaas
🎯 Amaç:
Günlük ücret üzerinden maaş hesaplamak.
💻 Kod:
public class Calisan
{
private int gunSayisi;
private const int gunlukUcret = 500;
public int GunSayisi
{
get { return gunSayisi; }
set
{
if (value >= 0)
gunSayisi = value;
}
}
public int MaasHesapla()
{
return gunSayisi * gunlukUcret;
}
}
// Form tarafı
private void btnHesapla_Click(object sender, EventArgs e)
{
Calisan c = new Calisan();
c.GunSayisi = (int)nudGun.Value;
lblMaas.Text = $"Toplam Maaş: {c.MaasHesapla()} TL";
}
📝 Açıklama:
Hesaplama mantığı sınıfa aittir. Form yalnızca girdileri sağlar.
📌 Örnek 5: ComboBox ile Seçim Yapıp Nesne Oluşturma
🎨 Form Elemanları:
- cmbSehir, btnOlustur, lblSonuc
🎯 Amaç:
ComboBox seçimine göre şehir nesnesi oluşturmak.
💻 Kod:
public class Sehir
{
private string ad;
public string Ad
{
get { return ad; }
set { ad = value; }
}
public string Bilgi()
{
return $"Seçilen Şehir: {Ad}";
}
}
// Form tarafı
private void btnOlustur_Click(object sender, EventArgs e)
{
Sehir s = new Sehir();
s.Ad = cmbSehir.SelectedItem.ToString();
lblSonuc.Text = s.Bilgi();
}
📝 Açıklama:
Seçilen değer doğrudan nesneye aktarılır. Yorumlama sınıf içerisinde yapılır.
✅ Özet:
Bu bölümde öğrenciler:
- Form kontrollerinden alınan verilerle nesne yaratmayı
- Bu nesneleri kapsüllenmiş sınıflarla işlemeyi
- Arayüzü ve iş mantığını ayrı katmanlar gibi kullanmayı
- OOP (Nesne Tabanlı Programlama) ile arayüz programcılığı arasındaki bağı öğrendiler