Erişim değiştiricinin kaldırılması
Java ilk olarak private protected
değ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 protected
Eriş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 protected
Java 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 protected
kaldı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 protected
gibi, 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 protected
gö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ı protected
Java'nın Beta2 sürümünde değişti ve private protected
kombinasyon 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 protected
bireyin anlamı değişmişti 1 , izin için bir ihtiyaç olmuş olabilir private
ve protected
aynı 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 protected
fazla hafif oldu.