Erişim değiştiricinin kaldırılması
Java ilk olarak private protecteddeğiştiriciye sahipti, ancak JDK 1.0.2'de kaldırıldı (ilk kararlı sürüm, bugün bildiğimiz Java 1.0). JDK 1.0.2 ( burada ve burada ) ile ilgili birkaç öğretici şunları söylüyor:
Not: Java dilinin 1.0 sürümü, beş erişim düzeyini destekledi: yukarıda listelenen dördü artı private protected. private protectedErişim düzeyi 1,0'dan Java üst versiyon desteklenmez; Java programlarınızda artık kullanmamalısınız.
SoftwareEngineering.SE ile ilgili başka bir cevap şöyle diyor:
Java başlangıçta böyle bir değiştiriciye sahipti. private protectedJava 1.0 ile yazılmış ancak kaldırılmıştır.
Şimdi Java Sürüm Geçmişine bir göz atın :
JDK 1.0
İlk sürüm 23 Ocak 1996'da piyasaya sürüldü ve Oak olarak adlandırıldı. İlk kararlı sürüme JDK 1.0.2 Java 1 denir.
Bundan, sürüm 1.0.2 ile ilgili öğreticilerin dilin Oak olarak adlandırıldığı ilk sürüm olan JDK 1.0'a atıfta bulunduğu, ancak SoftwareEngineering'den alınan eğitimin sonucuna varabiliriz. 1.0, kaldırıldı.
Java 1.0 belgelerinde aramaya çalışırsanız , bulamazsınız, çünkü daha önce de belirtildiği gibi, Java 1.0 olarak bilinen JDK 1.0.2'de kaldırılmıştır. Bu, gönderdiğiniz bağlantının "Son Değiştirme Tarihi" zamanlarına baktığınızda tekrar kanıtlanmıştır. Gönderdiğiniz bağlantı en son Şubat 1996'da değiştirildi. Java 1.0 / JDK 1.0.2, private protectedkaldırıldığında, Şubat 1996'dan sonra ve spesifikasyona göre, Ağustos 1996'ya göre yayınlandı.
Kaldırılma Nedeni
Bazı kaynaklarda da nedenini açıklamak private protectedgibi, bu biri. Alıntılamak:
Özel koruma neydi?
Daha önce, Java dili, biri olan belirli değiştiricilerin kombinasyonlarına izin verdi private protected. Bunun anlamı, private protectedgörünürlüğü kesinlikle alt sınıflarla sınırlamak (ve paket erişimini kaldırmak) idi. Bu daha sonra bir şekilde tutarsız ve aşırı derecede karmaşık kabul edildi ve artık desteklenmiyor. [5]
[5] Değiştiricinin anlamı protectedJava'nın Beta2 sürümünde değişti ve private protectedkombinasyon aynı anda ortaya çıktı. Bazı potansiyel güvenlik açıkları yamaları, ancak birçok insanın kafası karıştı.
Ve SoftwareEngineering.SE de tutarsızlıklara ve ekstra karmaşıklığa değmediğini söyleyerek bunu destekliyor, bu yüzden erken kaldırıldı.
yorumlama
Tüm bunları yorumlamam, belki de Meşe günlerinde, her ikisinin birlikte var olmasına izin verildi (bu nedenle kombinasyon). Yana protectedbireyin anlamı değişmişti 1 , izin için bir ihtiyaç olmuş olabilir privateve protectedaynı zamanda. Giriş çok karmaşık hale geldi ve buna değmedi ve sonunda düştü. Java 1.0 / JDK 1.0.2 yuvarlandığında, düşürülmüştü ve bu nedenle belgelerde bulunamıyor.
1 yılında Meşe Dil Şartname , Bölüm 4.10, Değişkenler ve Yöntemler erişim , varsayılan değiştirici olduğunu kaydetti edilir protected:
Varsayılan olarak bir sınıftaki tüm değişkenler ve yöntemler korunur .
Bu, bugünkü paket erişimimiz olandan oldukça farklı. Bu ihtiyacı yolunu açtı olabilir private protected, çünkü privateçok kısıtlayıcı ve protectedfazla hafif oldu.