C# OOP, base ve this kullanımı

  • Konuyu başlatan 511840
  • Başlangıç Tarihi
  • Mesaj 10
  • Görüntüleme 698

511840

Decapat
Katılım
1 Ocak 2022
Mesajlar
54
Merhaba arkadaşlar nesne yönelimli programlama dersi alıyorum. Ancak bir türlü base ve this kullanımını kafamda oturtamadım. Kullandığımız zaman bize ne özellikler sağlıyorlar? Okuduğum kaynaklar da kafama tam oturmadı. Burada sorduğumda anlaşılır şekilde anlatan biri çıkıyor hep.

Özellikle constructer'ı baselediğimiz zaman ne işe yaradığı kafamı karıştırıyor.
 
Merhaba arkadaşlar nesne yönelimli programlama dersi alıyorum. Ancak bir türlü base ve this kullanımını kafamda oturtamadım. Kullandığımız zaman bize ne özellikler sağlıyorlar? Okuduğum kaynaklar da kafama tam oturmadı. Burada sorduğumda anlaşılır şekilde anlatan biri çıkıyor hep.

Özellikle constructer'ı baselediğimiz zaman ne işe yaradığı kafamı karıştırıyor.

Hocam bu video yardımcı olabilir.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
Hocam bu video yardımcı olabilir.
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

Görmüştüm. Çok sıkıcı ve düz bir anlatımı var. Belki önyargılıyım bilmiyorum ama dinlerken 2 saniye dayanamıyorum.
 
this -> Bulundugunuz sinifin orneginin referansini size doner.

base -> Miras aldiginiz sinif uyelerine erisim tanir. Sanal metodları ezdiginizde daha cok kullanirsiniz.
 
this -> Bulundugunuz sinifin orneginin referansini size doner.

base -> Miras aldiginiz sinif uyelerine erisim tanir. Sanal metodları ezdiginizde daha cok kullanirsiniz.
Bu her yerde bulabileceğin bir tanım bu soruyu sorduğuma göre başka şeylerde kafam karışmıştır. Yine de teşekkür ederim ama hiçbir yardımı olmadı. Ama çözdüm. ChatGPT'ye anlamadığım noktaları sorarak aktif güzel bir konuşma gerçekleştirdik bütün noktaları kaptım sayılır. Constructer yapısı hakkında bazı bilgi sıkıntılarım varmış o açıklarımı kapattım.
 
GPT'ye danismaniz gayet hoş olmuş. Bu tip konularda daha hızlı cevap almak ve kafanıza yatmayan yerleri sorabilmek adına GPT cidden faydalı. Yardımcı olamadığım için üzgünüm sanırım fazla teknik oldu.

Ben size yine de bazı şeylerden bahsedeyim bu yolda. this öncelikle bir keyword'tür. Bulunduğunuz sınıfın elemanlarına erişim sağlamak için kullanabilirsiniz fakat asıl görevi oluşturmuş olduğunuz sınıfın bellekteki konumuna sınıfın içinden erişebilmektir. Eğer this keyword'ü olmasaydı, sınıf bellekte nerede var olduğunu bilemez kendisini manipüle edemezdi. Sınıfı oluşturduğunuz an elde ettiğiniz referansı conatructor ile sınıfa iletmek zorunda kalırdınız.

base keyword'ü ise miras aldığınız sınıf için aynı şeyi yapar. Bunun en somut örneğini size sanal metotlarla vereyim. Örneğin Araba diye soyut bir sınıfınız var ve bundan türeyen DizelAraba ve BenzinliAraba somut sınıflarınız var. İkisinde de ortak olan krank milinin dönmesidir mesela araba çalışırken. O yüzden bunu her ikisi için de yazmak yerine Araba sınıfının içinde tutabilirsiniz. Sanal metot ile bu çalıştırma fonksiyonunu dizel araba ve benzinli araba için override ile ezip bazı işlevleri değiştirdikten sonra base keyword'ü ile soyut sınıfa dönüp ortak işlemi gerçekleştirebilirsiniz.
 
GPT'ye danismaniz gayet hoş olmuş. Bu tip konularda daha hızlı cevap almak ve kafanıza yatmayan yerleri sorabilmek adına GPT cidden faydalı. Yardımcı olamadığım için üzgünüm sanırım fazla teknik oldu.

Ben size yine de bazı şeylerden bahsedeyim bu yolda. this öncelikle bir keyword'tür. Bulunduğunuz sınıfın elemanlarına erişim sağlamak için kullanabilirsiniz fakat asıl görevi oluşturmuş olduğunuz sınıfın bellekteki konumuna sınıfın içinden erişebilmektir. Eğer this keyword'ü olmasaydı, sınıf bellekte nerede var olduğunu bilemez kendisini manipüle edemezdi. Sınıfı oluşturduğunuz an elde ettiğiniz referansı conatructor ile sınıfa iletmek zorunda kalırdınız.

base keyword'ü ise miras aldığınız sınıf için aynı şeyi yapar. Bunun en somut örneğini size sanal metotlarla vereyim. Örneğin Araba diye soyut bir sınıfınız var ve bundan türeyen DizelAraba ve BenzinliAraba somut sınıflarınız var. İkisinde de ortak olan krank milinin dönmesidir mesela araba çalışırken. O yüzden bunu her ikisi için de yazmak yerine Araba sınıfının içinde tutabilirsiniz. Sanal metot ile bu çalıştırma fonksiyonunu dizel araba ve benzinli araba için override ile ezip bazı işlevleri değiştirdikten sonra base keyword'ü ile soyut sınıfa dönüp ortak işlemi gerçekleştirebilirsiniz.
Base anlatımınız kafamda daha da oturmasını sağladı teşekkürler. This'in bu özellikleri olduğunu da bilmiyordum yeni öğreniyorum notion notuma ekledim zamanını ayırıp yardımcı olduğun için sağ ol :)
 

Technopat Haberler

Yeni konular

Geri
Yukarı