Nesneler Nasıl Oluşturulur?

0
302
Nesneler Nasıl Oluşturulur?
Building house = new Building{);

Bu deklarasyon iki işlevi gerçekleştirir; Öncelikle, house adında Building sınıfı tipinde
bir değşken deklare eder. Bu değişken bir nesne tanımlamaz. Bilakis bu, bir nesneyle ilişkili
olabilecek bir değişkenden ibarettir. ikincisi, söz konusu deklarasyon, nesnenin asıl, fiziksel
kopyasını oluşturur ve house değişkenine bu nesnenin bir referansını atar. Bu işlem new
operatörü kullanılarak gerçekleştirilir. Böylece, bu satır gerçeklendikten sonra house ,
Building tipinde bir nesneyle ilişkilendirilmiş olur.
new operatörü, bir nesne için bellekte dinamik olarak (yani, çalışma esnasında) yer ayırır
ve buna bir referans döndürür. Bu referans, nesne için new ile ayrılan bellek alanının adresidir.
Bu referans daha sonra, bir değişken içinde saklanır. Yani, C#‟ta tüm sınıf nesneleri için bellek
alanı dinamik olarak ayrılmalıdır.
Önceki ifadedeki birleştirilmiş iki adım, her adımı avn ayrı göstermek için şu şekilde yeni
den yazılabilir:

Building house; // nesneyi gosteren bir referans deklare et
house = new Building (); /* bir Building nesnesi icin
bellek tahsis et */ 

ilk satır, Building tipinde bir nesneye bir referans olarak house değişkenini deklare
etmektedir. Böylece, house bir nesneyle ilişkili bir değişkendir, fakat kendisi bir nesne
değildir. Bu aşamada, house , null değerini içermektedir. n ull , değişken bir nesneyle ilişkili
değildir, anlamını taşır. Bir sonraki satır, yeni bir Building nesnesi oluşturur ve bunu
gösteren bir referansı house ‟a atar. Artık, house bir nesne ile bağlanmıştır.
Sınıf nesnelerinin referans yoluyla erişilmeleri, sınıfların neden referans tipleri olarak
adlandırıldıklarını da açıklamaktadır. Değer tipleri ve referans tipleri arasındaki en temel fark,
her tipin değişkenlerinin sahip oldukları anlamlardan kaynaklanmaktadır. Bir değer tipindeki
bir değişken için, değişkenin kendisi ilgili değeri taşır. Örneğin,

int x;
x = 10;

x , 10 değerini taşır çünkü x , bir değer tipi olan int tipinde bir değişkendir. Ancak, şu du-
rumda

Building house = new Building(); 

house ‟un kendisi nesneyi içermez. Bunun yerine, nesneyi gösteren bir referans içerir.

CEVAP VER