Özellikleri Anlama3(properties)

Senaryomuz gereği bir doğrunun uzunluğu bulan bir program yazacağız. Bu doğrunun ANoktasi ve BNoktasi isimli özellikleri olacak ve bu özelliklere değer aktarımı yapacağız. Daha sonrada bu Dogru sınıfının IkiNoktaArasiniBul() isimli bir yöntem yazacağız. Bir doğrunun uzunluğunu bulmak için kordinat düzleminde bu doğruyu çiziyoruz. Problemin matematiksel çözümünü buradan inceleyebilirsiniz.

 

 Programımız için aşağıdaki gibi bir form hazırlayalım..

Öncelikle küçük değerleri tutan bir class yerine Struct(Yapı) kullanmak daha avantajlı ve hızlı olduğunu hatırlatmak isterim. Yapıların ilk değerleri 0,  "" gibi ilk değerleri olması garanti altındadır. Tıpkı int a; tanımladığımızda anın ilk değeri 0 olması gibi. Enum, struct, double, int gibi önceden tanımlı tipler değer türüdür. String tipinin referans(başvuru) türü olduğunu hatırlayalım..

Point isimli yapımızı oluşturalım...

struct Point  //değer türlerinin başlangıç değerlerinin olması garanti altındadır.
    {  
        public int x, y;
        public Point(int x, int y)
        {
            this.x = x;
            this.y = y;
        }
    }

Daha sonra Dogru classımızı oluşturuyoruz. Özellik oluşturmanın bir yöntemide Sınıfımız üyesi üzerinde sağ tuşa tıklayıp, refactor, Encaptulation Filed  tıklayarak oluşturmaktır. Diğer bir deyişle bir alanı özeliklik kullanarak kapsülleme işlemi yapmaktır.

class Dogru
    {
        Point aNoktasi;
        Point bNoktasi;

        internal Point BNoktasi
        {
            get { return bNoktasi; }
            set { bNoktasi = value; }
        }

        internal Point ANoktasi
        {
            get { return aNoktasi; }
            set { aNoktasi = value; }
        }

        public double IkiNoktaArasiBul()
        {
            double sonuc = Math.Sqrt(((aNoktasi.x - bNoktasi.x) * (aNoktasi.x - bNoktasi.x)) + (aNoktasi.y - bNoktasi.y) * (aNoktasi.y - bNoktasi.y));
            return sonuc;
        }
    }

Hesapla butonunun click olayını işleyelim..Butonun üzerinde çift tıklayarak gerekli kodları yazalım...

 

private void btnHesapla_Click(object sender, EventArgs e)
        {
            int ax = Convert.ToInt32(tbAx.Text);
            int ay = Convert.ToInt32(tbAy.Text);
            int bx = Convert.ToInt32(tbBx.Text);
            int by = Convert.ToInt32(tbBy.Text);
            Point  A = new Point(ax, ay);
            Point  B = new Point(bx, by);
            Dogru dogrum = new Dogru();
            dogrum.ANoktasi = A; //ANoktasi isimli Özelliğini değer ataması yaptım..
            dogrum.BNoktasi = B;
            double sonuc = dogrum.IkiNoktaArasiBul();
            lblSonuc.Text = sonuc.ToString();

        }

Projemizi bu linkden indirebilirsiniz. 

ozellik5.rar (40,71 kb)

Bir sonraki yazıda görüşmek üzere. Esenlikle kalın..

 

Add comment

The file '/Custom/Widgets/Calendar/widget.cshtml' does not exist.The file '/Custom/Widgets/Category list/widget.cshtml' does not exist.The file '/Custom/Widgets/Tag cloud/widget.cshtml' does not exist.The file '/Custom/Widgets/Page List/widget.cshtml' does not exist.The file '/Custom/Widgets/Month List/widget.cshtml' does not exist.