7.5 – Formdan Nesne Oluşturma


📘 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

Leave a Reply