Ders-7 OOP Nesne

Bu derste nesne ile referans arasındaki ilişkiyi inceleyeceğiz. Ram üzerindeki etkilerini gözlemleyip garbage collector gibi soyut kavramların üzerinden geçmiş olacağız.

Referans Nedir?

Ram’in stack bölgesinde tanımlanan ve heap bölgesindeki nesneleri işaretleyen/referans eden değişkenlerdir/noktalardır.

Referans yalnızca class’dan değil, class türleri olan interface veya abstract’dan da referans üretilebilmektedir fakat nesne yalnızca class ile oluşturulabilir.

Buna ek olarak C# 9.0 ile beraber gelen nesneye en yakın olan record yapılandırılmasınında referansı oluşturulabiliyor.

Eğer ki bir referans herhangi bir nesne işaretlemiyorsa null değerini alır.

Stack – Heap İlişkisi

Nesne oluşturma konsepti: MyClass m = new MyClass();

Nesneler referansla işaretlendirilir. Neskeye referans üzerinden erişilir.

Member Access

Elimizdeki bir değerin türüne uygun elemanları-fonksiyonları-metotlarını-propertylerini-field’larına erişmemizi-çalışmamızı-çağırmamızı sağlayan bir operatörler.

Member access kodun devamını getirir.

Referanssız Nesneler

Bir nesne oluşturulduğu an herhangi bir referansla işaretlenmezse eğer Heap’e yerleştirilir. lakin bu nesneye tarafımızca birdaha erişemeyiz. Haliyle ilgili nesneyle aramızdaki tek diyalog oluşturma anıdır. Eğer ki bir nesne referanssızsa bunu oluşturabilmekteyiz. Ancak bu nesne sistemde/memoryde lüzumsuz yer kaplayacağından dolayı belli bir süre sonra Garbage Collector dediğimiz çöp toplayıcısı tarafından temizlenecektir.

Garbage Collector: Heap’de referanssız olan nesneleri imha etmekten/temizlemekten sorumlu bir yapılanmadır.

Object Initializer

Nesne oluşturulduğunda propertylerinin varsayılan değerleri vardır. yukarıdaki resimde ‘m’ isimli nesnede süslü parantezler için(‘{ }’) atanan değerler artık propertlerin varsayılan değerleri olacaktır. Nesne çağırıldığı anda değerler eşilenir. Ancak ‘m’ nesnesinin süslü parantez dışında kalan ataması ve ‘m2’ nin property ataması nesne çağırıldıktan sonra gerçekleşir. Bundan dolayı propertylerin varsayılan değerleri değişmez.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir