Set ve Get metodlarıyla Dört İşlem

Nesne Yönelimli Programlama ile ilgili çok fazla yazı paylaşmadığımı gördüm. Son zamanlarda gelen istekler üzerine bu konuya biraz daha ağırlık vereceğim. Daha önce yazdığım aşağıdaki NYP'ye Giriş niteliğindeki yazıyı okuyabilirsiniz. Tabi bu konuda yüzlerce slayttan oluşan bir eğitim hazırladım, iki üniversitede de C++ ve Java derslerinde anlattım, bunlar sadece giriş niteliğinde yazılar.

C# ile Nesne Yönelimli Programlamaya Giriş

Önce DortIslem sınıfı oluşturmak için View Menüsünden Solution Explorer penceresini açıyoruz. Daha sonra projemizin üzerine sağ tıklayarak Add(Ekle) seçeneğini seçip New Class ile yeni sınıf ekliyoruz. İsmine de DortIslem ismini veriyoruz. Alışagelmiş şekilde genelde sınıf adları büyük harfle başlar.



Aşağıdaki gibi boş bir Class oluşturulacak.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace DikdortgenClass
{
    class DortIslem
    {
       //Bu kısma kodları yazacağız
    }
}

Şimdi içini dolduralım. Burada carp(), topla(), bol(), cikar() diyerek dört metod tanımlıyoruz. Bu metodlara ilave olarak a ve b özelliklerine değer atamak için setA ve setB, değer okumak için getA ve getB metodlarını tanımlıyoruz. Hatırlayacağınız gibi sınıf içindeki a ve b değerleri önüne hiçbir erişim belirteci yazılmadığında C#'da varsayılarak olarak private(özel, gizli) olarak ayarlanırlar. Bu değerlere ancak sınıf içinden erişilebilir, dışarıdan erişip değer atamak için Set, değer okumak için Get metodlarını kullanıyoruz. 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace DikdortgenClass
{
    class DortIslem
    {
        int a, b; //Varsayılan olarak private özellikler
        public void setA(int _a){ //a değerine atama
            this.a=_a;
        }
        public int getA() //a değerini okuma
        {
            return (this.a);
        }
        public void setB(int _b) //b değerine atama
        {
            this.b = _b;
        }
        public int getB() //b değerini okuma
        {
            return (this.b);
        }
 
        public int topla() //topla metodu
        {
            return (a + b);
        }
        public int carp() //çarp metodu
        {
            return (a * b);
        }
        public double bol()  //böl metodu sonuç küsüratlı çıkabilir 
        {
            if (b != 0)
                return ((double)a / b);
            else 
                return (0);
        }
        public int cikar() //çıkar metodu
        {
            return (a - b);
        }
    }
}

Şimdi aşağıdaki gibi bir form üzerine 2 textBox, 2 Label, 4 Button nesnesi yerleştirerek ilgili butonlara tıklayıp kodlarımızı yazıyoruz. Butonların name kısımlarını btnTopla, btnCarp, btnBol ve btnCikar olarak değiştirdim. İsim verirken Türkçe karakter kullanmamaya dikkat ediniz.




İlk önce DortIslem sınıfından islem isimli bir nesne oluşturuyoruz.

   DortIslem islem = new DortIslem();

tüm buton_Click() metodlarında tekrarlanan kodları azaltmak için veriAlAta() isimli bir metod tanımladık. Bu metod textBox nesnelerinden değerleri alıp, tamsayıya çevirip, DortIslem sınıfındaki setA ve setB metodlarına gönderiyor. Dört butonda da aynı işlem yapılıyor. 

   public void veriAlAta()
        {     
               int sayi1 = int.Parse(textBox1.Text);
               int sayi2 = int.Parse(textBox2.Text);
               islem.setA(sayi1);
               islem.setB(sayi2);
        }
 

Ardındandan  topla metodundan ve diğer metodlardan veriAlAta() metodunu çağırıyoruz. Böylece yazacağımız kod satırı azalıyor.

  private void btnTopla_Click(object sender, EventArgs e)
        {
               veriAlAta();
               int sonuc=islem.topla();
               MessageBox.Show( sonuc.ToString());
        }

 

Kodun Tamamı aşağıda verilmiştir.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace DikdortgenClass
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
 
        DortIslem islem = new DortIslem();
 
        public void veriAlAta()
        {     
               int sayi1 = int.Parse(textBox1.Text);
               int sayi2 = int.Parse(textBox2.Text);
               islem.setA(sayi1);
               islem.setB(sayi2);
        }
 
        private void btnTopla_Click(object sender, EventArgs e)
        {
               veriAlAta();
               int sonuc=islem.topla();
               MessageBox.Show( sonuc.ToString());
        }
 
        private void btnCikar_Click(object sender, EventArgs e)
        {
            veriAlAta();
            int sonuc = islem.cikar();
            MessageBox.Show(sonuc.ToString());
        }
 
        private void btnCarp_Click(object sender, EventArgs e)
        {
            veriAlAta();
            int sonuc = islem.carp();
            MessageBox.Show(sonuc.ToString());
        }
 
        private void btnBol_Click(object sender, EventArgs e)
        {
            veriAlAta();
            double sonuc = islem.bol();
            MessageBox.Show(sonuc.ToString());
        }
    }
}


Mutlu Kodlamalar,
Oğuzhan TAŞ
Şubat 2022
 
 
Bookmark and Share