undefined

Merhabalar,

Önce sizlere sınıf ve nesne kavramlarından biraz bahsedeyim.

Sınıflar(Classes) yapıları Nesne Yönelimli Programlamada(Object Oriented Programming) kullanılır.

Sınıf ve Nesne nedir ? diye sorduğumuzda öyle ezbere bir cevap vermeye gerek yok.

Şöyle düşünün;

SINIF

OOP türü yazdığımız programlarda sadece nesneler vardır. Bu nesneler, mesaj alışverişi yaparak, birbirleriyle haberleşirler.
Nesneler OOP de sınıf olarak ifade edilen şablonlardan yaratılır. Her sınıf içinde, o sınıftan üretilecek nesnelerin özelikleri, davranışları tespit edilir. Örneğin Araba isminde bir sınıf yaratabiliriz. Bu sınıftan üretilecek nesnelerin ortak yani, bir motor, 4 teker, direksiyon gibi parçalar olacaktır.

NESNE

Nesne, içinde veri ve bu veriler üzerinde işlem yapacak olan metotları(fonksiyon) bulunduran yazılım bileşenidir. Nesne bu tanıma uygun olarak, kendi işlevselliğini de içinde taşır. Nesneler her uygulamada tekrar tekrar kullanılabilir. Veri ve metotlar, birlikte nesnenin üyeleri (members) adını alır. Bir nesne yapısı, bir sınıf (class) içinde tanımlanır. Sınıf içinde nesneyi oluşturan üye değişkenler ve metotlar açıkça tanımlanır.

Metod nedir?

Metodlar bir nesnenin dis dünyaya açılan kapılarıdır. Bir nesnenin içinde ne oldugu, nesnenin nasıl çalıştığı dışarıdan görünmez. Nesnenin sahip olduğu bir iç dünyası vardır. Eğer nesne île interaksiyon (etkileşim) a girmek istiyorsak, dışa açılan kapılarından (metodlardan) birini kullanmamız gerekir. Nesnelere, sınıf içinde tanımlanmış ve her nesnenin sahip olduğu metotlar aracılığıyla mesaj gönderebiliriz. Eğer bir nesneden bir şey yapmasını bekliyorsak, metodunu kullanarak, ona bir mesaj göndeririz. Nesne bu mesajı alarak, gerekli işlemi yapar.
Metodlar nesnelerin dış dünyaya karşı davranışlarını tanımlar. Metotları, diğer programlama dillerinde kullanılan fonksiyonlar olarak düşünebiliriz. Nesneler ile sadece bu metotları kullanarak, interaksiyona girebiliriz.

Olaylar (Events) Nedir?

Olaylar, nesne yönelimli programlama ortamlarında devamlı olarak kullanılırlar. Burada en çok bilinen örnek, Button (düğme) sınıfına ait olan bir nesne için Click (tıklama) isimli eventdir. Click eventinde fareyle button nesnesinin üzerine tıklandığında ortama bir olay fırlatılır.

undefined

Şimdi artık yazdığımız kodlara geçebiliriz.

Önce projemize 1 adet sınıf ekliyoruz ve adını arabaSinifi.cs olarak değiştiriyoruz. Ardından arabaSinifi.cs sınıfımızın içine aşağıdaki kodları yazıyoruz.

using System;
using System.Collections.Generic;
using System.Text;
 
namespace sinifYapilari
{
    class arabaSinifi
    {
        private string marka;
        private string renk;
        private int yili = 0;
 
        public arabaSinifi(string m, string r, int y)
        {
            this.marka = m;
            this.renk = r;
            this.yili = y;
        }
        public void arabaBilgisiKaydet(string m, string r, int y)
        {
            this.marka = m;
            this.renk = r;
            this.yili = y;
        }
 
        public string arabaBilgisiGoster()
        {
            return  "Arabanın markası t: " + this.marka + "n" +
                    "Rengi tt: " + this.renk + "n" +
                    "Yılı tt: " + this.yili;
        }
 
    }
}
 private string marka;
 private string renk;
 private int yili = 0;


Burada sınıfımızda kullanacağımız değişkenlerimizi tanımladık. private deyimiyle bu değişkene erişimin özel yani bu sınıfın içindeki fonksiyonlar yardımıyla olacağını belirttik. Eğer bu değişkeni şu şekilde tanımlamış olsaydık:

 public string isim;

burada arabaSifi adlı sınıftan yeni bir nesne türettiğinizde varsayılan olarak bu arabanın model, renk ve yıl bilgileri yer alıyor. Şöyle :
arabaSinifi arabam = new arabaSinifi("Audi A5","Siyah",2013);
Bu sınıftan bir araba türetiyorsanız bu 3 bilgiyi girmek zorundasınız. Peki her sınıfta yapıcı(constructor) bulunmak zorunda mı? Bence hayır. Ama biz koyduk. Eğer sınıfınızda böyle bir zorunluluk istemiyorsanız bunu kullanmanıza gerek yok. Eğer bunu kullanmazsak ana formda bu sınıftan bir nesne türetmek istersek şu şekilde tanımlama yapacağız:
arabaSinifi arabam = new arabaSinifi();

 public void arabaBilgisiKaydet(string m, string r, int y)
        {
            this.marka = m;
            this.renk = r;
            this.yili = y;
        }

Bu fonksiyonda ise, parametre olarak göndermiş olduğumuz değerleri az önce tanımlamış olduğumuz değişkenlere atama işlemi yapılıyor.

public string arabaBilgisiGoster()
        {
            return  "Arabanın markası t: " + this.marka + "n" +
                    "Rengi tt: " + this.renk + "n" +
                    "Yılı tt: " + this.yili;
        }

Burada ise araba bilgileri gösteriliyor. return ile değişkenlerin içindeki değerleri gönderiyoruz.

 

Tags : OOP Nedir , C# ile sınıf yapıları , C# ile sınıf oluşturmak , C# ile Class , Nesne nedir , Constructor , OOP Mantığı , Metod , Olaylar(Events nedir ?