C#

C# Nesne Kavramı

Merhaba, bu yazıda nesnelere biraz daha değineceğim. Nesneler’in sınıfların birer örneği olduğunu bir önceki yazıda söylemiştik. Nesneler aslında sınıftaki verileri anlamlı bir şekilde modellemektir. Peki ne işe yarar dersek, kısaca sınıfları işe yarar hale getirmek diyebiliriz. Örneğin bir araba fabrikasında elimizde motor, tekerlek vb.(değişken) veriler var. Eğer biz bu verilerle araba nesnelerini oluşturmazsak bunların hiçbir anlamı yoktur. Aynı verilerle birbirinden farklı birçok nesne oluşturabiliriz. Gerçek bir nesne oluşturmak için aşağıdaki gibi bir ifade kullanılması gerekmektedir.

Artık otomobil adında gerçek bir nesnemiz oluşmuş durumda.

Bir sınıfa ait bir nesne oluşturduğumuzda, her nesne de sınıfta tanımlanan örnek değişkenlerin birer kopyası oluşur. Yani her nesnede renk, marka, hiz, yakitTipi değişkenlerinin kopyaları bulunmaktadır. Bu aynı zamanda nesnelerin içindeki değişkenlerin farklı değer alabilecekleri anlamına gelmektedir. Bu değişkenlere nokta(.) operatörü ile erişilebilir.

// nesne.uye

Örnek değişkenlere ve metotlara erişim için nokta kullanılabilir. Şimdi bir nesne oluşturma işleminin parça parça ne anlama geldiğini gösterelim.

Gördüğümüz gibi otomobil adında bir nesne oluşturduk. Şimdi bölelim:

İlk kısımda Tasit sınıfı tipinde otomobil adında bir referans oluşturuyoruz. Yani ortada fiziksel bir nesne yok. İkinci kısımda ise fiziksel olarak ram de nesne yer almış olur. otomobil ‘in değişkenine nesnenin referansı atanır ve nesne ile ilişkilendirilmiş olur. Burada new operatörünün görevi, dinamik olarak bellekte yer ayırmak ve referans döndürmektir. Bu referans değişkeninin (otomobil) içinde saklanır.

Sınıflar ile bir değişken tanımlayabildiğimiz için, referans tipi olarak da adlandırılırlar. Değer tipleri ile aralarındaki fark değişkenlerinin aralarındaki farktan kaynaklanmaktadır. Bir değer tipi için;

Örneğin;

İfadesinde “i” 5 değerini taşımaktadır.

Burada ise motor değişkeni nesneyi değil nesnenin referansını taşımaktadır. Bu yüzden şu tanımlama yanlıştır:

Şimdi bir örnek üzerinde anlatmaya devam edelim.

İstanbul’un amatör seyyahı. Kod yazmak hayat felsefesi. Android, Java, C# ve Javascript’le yakından, tüm teknoloji dünyasıyla uzaktan ilgileniyor. Drone meraklısı ama sahibi değil.