Nesne Yönelimli Programlama #07 | Java erişim kuralları

Access Modifiers

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

Geçen derste nesneye ait alanlarla sınıfa ait ortak alanları ayırdık. Bugün bir adım daha atıyoruz: bu alanları hangi kod kullanabilir? Ekranda aynı raf nesnesine yönelen iki erişim yolu var. Yollardan biri açılırken diğeri derleme sırasında kapanacak. Nesne değişmediği hâlde sonuç neden farklı? Çünkü erişim kararında yalnız alıcının kimliği değil, erişimi yazdığımız kaynak kodun bağlamı da önemlidir. Bu soruyu küçük ve çalışan bir Java örneğiyle inceleyelim. Özgün LoanShelf örneğinde public, paket erişimi ve private üyeleri çağrının yazıldığı kaynak bağlamına göre inceliyoruz. Önce bildiren türün, sonra üyenin erişilebilirliği denetlenir. Aynı paket ile alt paket farklıdır; başka nesne üzerinden private erişimin sınıf içindeki durumunu ve private yapıcının içeriden çağrılmasını ayrı derleme örnekleriyle gösteriyoruz. Derlenen ödünç alma yolunda kapasite, kullanılan yer ve kalan yer durumlarını izliyoruz. Bu derste: 1. Paket bir kaynak kod düzenidir 2. Türün kapısı ve üyenin kapısı 3. Belirteç yoksa paket erişimi 4. Derleme reddi bir çalışma adımı değildir 5. Yakın paket adları izin taşımaz 6. Private alanı hangi kod okuyabilir? 7. İzinli çağrıda gerçek durum değişimi 8. Açık üye kapalı türü açmaz 9. Türü görmek nesne kurabilmek değildir 10. İzin tablosunu gerçek derlemeyle sınamak Bölümler: 0:00 Aynı nesneye giden iki farklı yol 1:28 Paket bir kaynak kod düzenidir 2:50 Türün kapısı ve üyenin kapısı 4:07 Belirteç yoksa paket erişimi 5:25 Derleme reddi bir çalışma adımı değildir 6:45 Yakın paket adları izin taşımaz 8:01 Private alanı hangi kod okuyabilir? 9:22 İzinli çağrıda gerçek durum değişimi 10:44 Açık üye kapalı türü açmaz 12:00 Türü görmek nesne kurabilmek değildir 13:20 İzin tablosunu gerçek derlemeyle sınamak 14:42 Üç soruyla erişim yolunu oku Kaynak kitap: Y. Daniel Liang, Introduction to Java Programming, Comprehensive 10th Edition; §9.8. Basılı342–344 / fizikselPDF365–367; ölçülen+23; gerçek Java11 LoanShelf ve erişim derleme varyantları. Kavram ve konu sırası kaynak kitaptan izlenir; anlatım, çizimler ve ödünç rafı örnekleri özgündür. Sayısal durumlar gerçek Java 11, TypeScript ve bağımsız Python yer kümeleriyle; erişim kuralları gerçek derleme varyantlarıyla denetlenmiştir. Erişim belirleyicileri kaynak kodun derleme kurallarıdır; kullanıcı yetkilendirmesi veya sistem güvenliği sertifikası değildir. Kapsam Java 11 classpath ve adsız modüldür; protected ve kalıtım daha sonra ele alınır. 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.