5.00 / 1 oy

C# Özellik (Property) Nedir?

Sınıflardaki özelliklerin public olarak erişilebilir olmasının sakıncalarından ve private olarak erişim yetkilendirmelerinin yapılması gerektiğinden önceki yazılarda bahsetmiştik. Bu yazıda ise constructor dışında bu private sınıf değişkenlerini nasıl düzenleyebileceğimize bakalım.

Araba sınıfına private bir motor değişkeni ekleyelim, bu haliyle başka bir sınıftan erişilemeyecektir.

class Araba
{
...
    private int motor;
...
}

Araba sıfınından üreteceğimiz araba nesnelerinin motor güçlerini belirleyebilmek için ilk seçeneğimiz, birisi motora değer vermek, diğeri ise değerini okumak için iki metod yazmak olabilir.

private int motor;

public int GetMotor()
{
    return this.motor;
}
public void SetMotor(int motor)
{
    this.motor = motor;
}

Bu yaklaşım hatalı olmayan ve kullanılabilir bir kod yazma biçimidir, bu yaklaşıma da yazılım literatüründe kapsülleme (encapsulation) adı verilmektedir. Örneğin motor gücünün değiştirilmesi istenmiyorsa ve sadece değerinin okunması isteniyorsa SetMotor() metodu yazılmayabilir. Ancak kapsülleme yaklaşımını uygulamak için daha pratik yöntemler bulunmaktadır.

Private sınıf değişkenlerine erişen ve bu değerleri temsil eden sınıf üyelerine Özellik (Property) adı verilir ve değerleri de getter ve setter ile iletilirler.

private int motor;

public int Motor
{
    get {
        return this.motor;
    }
    set {
        this.motor = value;
    }
}

Özellik eklemenin en hızlı yolu, private değişken yaratmadan aşağıdaki gibi getter ve setter yazmaktır.

public int Motor {get; set;}

Önceki yazılarımdan bazıları için;

bkz: C# Kurucu (Constructor) Nedir?

bkz: C# Nesne Nasıl Oluşturulur?

bkz: C# Yeni Bir Sınıf Nasıl Oluşturulur?

bkz: C# Sınıf ve Nesne Nedir?

bkz: C# ile string'in karakterlerini rastgele değiştirmek ve sıralamak

bkz: C# ile String'in ortanca karakterini bulmak

mbologlu

12.04.2021 05:41

Bu soru henüz yanıtlanmamış.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
C# Özellik (Property) Nedir?

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.