Nesne Yönelimli Programlama #09 | Nesneleri metotlara geçirmek

Nesne ve Sınıf Kavramları

Eğitmen: Dr. Süleyman Burak ÇELİK

Bir metoda sayı verdiğimizde içerideki değişiklik dışarıya dönmeyebilir. Aynı metoda bir nesne verdiğimizde ise nesnenin durumunun değiştiğini görürüz. Bu iki gözlem ilk bakışta iki ayrı aktarım kuralı varmış gibi duruyor. Bugün metoda gerçekte neyin taşındığını çalıştırarak ayıracağız. Önceki derste veriyi kontrollü metotların arkasına koymuştuk. Şimdi bu nesneyi başka bir metoda verirken çağıranın değişkeniyle metodun parametresi arasında nasıl bir ilişki kurulduğunu inceleyeceğiz. Özgün PackingTray örneğinde sayısal değer ve nesne referansı aktarımını izliyoruz. Çağıranın değişkenleri ile metotta oluşan parametre değişkenlerini ayrı çiziyor, ortak nesne üzerindeki değişimin neden dışarıdan görüldüğünü açıklıyoruz. Parametreyi başka bir nesneye bağlamak veya null yapmak, dönüş değeri üretmek ve çağıranın açık ataması birbirinden ayrılıyor. Yerel takas, iki parametrenin aynı nesneyi göstermesi ve sınırdaki ikinci çağrının reddi ayrı adımlarda gösteriliyor. Bu derste: 1. Tam sayı için iki ayrı kutu 2. Referans değerinin kopyası 3. Ortak nesnenin durumunu değiştirmek 4. Çağrı bitince ne kalır? 5. Parametreyi başka nesneye bağlamak 6. Null ataması hangi oku kaldırır? 7. Dönüş değeri ve açık çağıran ataması 8. Yerel takas dış bağları takas etmez 9. İki parametre, tek hedef 10. Derleme ve çalışma kanıtını ayırmak Bölümler: 0:00 Metoda ne taşınır? 1:37 Tam sayı için iki ayrı kutu 3:01 Referans değerinin kopyası 4:29 Ortak nesnenin durumunu değiştirmek 5:53 Çağrı bitince ne kalır? 7:19 Parametreyi başka nesneye bağlamak 8:42 Null ataması hangi oku kaldırır? 10:10 Dönüş değeri ve açık çağıran ataması 11:36 Yerel takas dış bağları takas etmez 13:02 İki parametre, tek hedef 14:30 Derleme ve çalışma kanıtını ayırmak 15:58 Aynı aktarım kuralı, farklı yazım hedefleri Kaynak kitap: Y. Daniel Liang, Introduction to Java Programming, Comprehensive 10th Edition; §9.10. Basılı347–351 / fizikselPDF370–374; ölçülen+23; gerçek Java11 PackingTray referans değeri aktarımı ve derleme/çalışma varyantları. Kavram ve konu sırası kaynak kitaptan izlenir; anlatım, çizimler ve paketleme tepsisi örnekleri özgündür. Sayısal durumlar gerçek Java 11 ve TypeScript nesneleriyle, bağımsız Python bağ tabloları ve dolu yer kümeleriyle çapraz denetlenmiştir. Argüman değerleri yeni parametre değişkenlerine aktarılır; referans değeri kopyası aynı nesneye ulaşabilir. Yerel yeniden bağlama çağıranın bağını değiştirmez; ortak nesneyi değiştirmek ayrı işlemdir. Aynı nesneye iki doldurma çağrısında ilk değişiklik ikinci ret yüzünden geri alınmaz. Çizimler kavramsaldır; JVM bellek adresi, çöp toplama zamanı, hız veya güvenlik ölçümü değildir. Bu ders Java örneği kullanır; C# diline özgü erişim ve olay özellikleriyle eş tutulmaz. Kaynak kitap kullanıcı tarafından temin edildi. Hedef kitle: bilgisayar mühendisliği ve yazılım öğrencileri.