Sınıf İçindeki Yapılar

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

Class Bileşenleri

FIELDS:

  • Genellikle, nesnenin özellikleri (property) için değer saklama alanıdır. Varsayılan durumda private yapılardır.
  • Field,  global alanda tanımlanmış bir değişken olarak da düşünülebilir. Yani class içerisindeki tüm metotlardan erişilebilecek bir değerdir.

 

public class Insan
{
    private string _isim;
}

 

PROPERTIES:

  • Nesnenin özellikleridir.
  • Kendi içinde iki metot barındırabilir:
    • Set metodu: Bir property’ye yeni bir değer atamak için kullanılır. Set metodu olmayan property’ler read-only durumundadır.

    • Get metodu: Bir property’nin değerini okumak için kullanılır

  • Genelde bir field’da bulunan değeri değiştirmek / okumak için kullanılır.

 

private string _isim;
public string Isim
{
    get
    {
        return _isim;
    }
    set
    {
        isim = value;
    }
}

 

METHODS:

  • Nesnenin yapabildiği işlerdir.
  • Virtual, override, abstract metotlar oluşturulabilir. Bu sayede, miras alan sınıfın bu metot ile yapabileceği işler belirlenebilir.
  • Static olarak oluşturulabilir. Bu sayede, metot nesnenin değil sınıfın metotu haline gelir.

 

public void kos()
{
}

public static void aya_ayak_bas ()
{
}

Static metotlar o metoda başka sınıflardan instance alınmadan ulaşılmasına olanak sağlar.


CONSTRUCTOR

  • Constructor ismi, class’ın ismi ile aynı olmak zorundadır.
  • Nesne ortaya çıkartılırken yapılacak işlemleri barındırır.
  • Farklı parametreleri alarak aşırı yüklenebilir (overload).
public Insan ()
{
    This.Isim = “Doe”;
}

// Burada kullanılan This, işlem yapılan sınıfı ya da sayfayı temsil etmektedir.

public Insan(string adi)
{
    This.Isim = adi;
}

 

EVENTS

Nesnelerin tepkileridir. Delegate’ler ile birlikte kullanılır. Düğmenin tıklanması bir event’tir. Daha önce düğmeyi tıklayınca bir tepki vereceği öngörülmüştür. Aşağıdaki örnekte, Kettle sınıfına SuKaynama Eventi eklenmiş ve su derecesi 100’ü geçerse bu event’in tetikleneceği belirtilmiştir. Artık Kettle nesnesi ile çalışırken su kaynayınca ne iş yapması gerektiğini söyleyebiliriz:

 

public delegate void SuKaynamaDelege();
public class Kettle
{
    public event SuKaynamaDelege SuKaynamaEventi;
    private byte _susicakligi;
    public byte Susicakligi
    {
        get 
        { 
            return _susicakligi; 
        }
        set
        {
            _susicakligi = value;
            if (this._susicakligi >=100)
            {
                if (SuKaynamaEventi != null)
                {
                    SuKaynamaEventi();
                }
            }
        }
    }
}

OOP sadece sınıf ve nesne ilişkisi değildir. Bunun dışında da kendine özgü bazı özellikleri bulunur. Bu özellikler OOP desteği veren dillerde tamamen veya kısmen dile eklemlenmiştir. Bu özellikler encapsulation (sarmalama/paketleme), inheritance (miras alma) ve polymorphism’dir (çok biçimlilik).