Penghapusan pengubah akses
Java memang memiliki private protected
modifier, tetapi telah dihapus di JDK 1.0.2 ( versi stabil pertama , Java 1.0 yang kita kenal sekarang). Beberapa tutorial tentang JDK 1.0.2 (di sini dan di sini ) mengatakan hal berikut:
Catatan: Rilis 1.0 bahasa Java mendukung lima tingkat akses: empat yang tercantum di atas plus private protected
. The private protected
tingkat akses tidak didukung dalam versi yang lebih tinggi Jawa dari 1,0; Anda seharusnya tidak lagi menggunakannya di program Java Anda.
Jawaban lain tentang SoftwareEngineering.SE menyatakan:
Java awalnya memiliki pengubah seperti itu. Itu ditulis private protected
tetapi dihapus di Jawa 1.0.
Sekarang lihat Sejarah Versi Java :
JDK 1.0
Versi pertama dirilis pada 23 Januari 1996 dan disebut Oak. Versi stabil pertama, JDK 1.0.2, disebut Java 1.
Dari ini, kita dapat menyimpulkan tutorial tentang versi 1.0.2 merujuk ke versi pertama, JDK 1.0, di mana bahasa itu disebut Oak, tetapi yang dari SoftwareEngineering.SE merujuk ke versi stabil pertama, JDK 1.0.2 disebut Java 1.0, tempat dihapus.
Sekarang jika Anda mencoba mencarinya di dokumentasi Java 1.0 , Anda tidak akan menemukannya, karena seperti yang disebutkan sebelumnya, itu telah dihapus di JDK 1.0.2, atau dikenal sebagai Java 1.0. Ini terbukti lagi ketika Anda melihat waktu "Terakhir Dimodifikasi" untuk tautan yang Anda poskan. Tautan yang Anda poskan terakhir kali dimodifikasi pada bulan Februari 1996. Java 1.0 / JDK 1.0.2, ketika private protected
dihapus, dirilis setelah Februari 1996 , dan sesuai dengan spesifikasi, Agustus 1996.
Alasan untuk dihapus
Beberapa sumber juga menjelaskan alasannya private protected
, seperti ini . Kutipan:
Apa yang dilindungi pribadi?
Sejak awal, bahasa Jawa memungkinkan kombinasi pengubah tertentu, salah satunya private protected
. Arti private protected
adalah untuk membatasi visibilitas hanya untuk subclass (dan menghapus akses paket). Ini kemudian dianggap agak tidak konsisten dan terlalu rumit dan tidak lagi didukung. [5]
[5] Arti protected
pengubah berubah dalam rilis Beta2 Java, dan private protected
kombinasi muncul pada saat yang sama. Mereka menambal beberapa lubang keamanan potensial, tetapi membingungkan banyak orang.
Dan SoftwareEngineering.SE juga mendukung ini, dengan mengatakan bahwa itu tidak sebanding dengan ketidakkonsistenan dan kompleksitas tambahan, jadi sudah dihapus sejak dini.
Penafsiran
Penafsiran saya tentang semua ini adalah bahwa mungkin, pada masa Oak, keduanya diizinkan untuk hidup berdampingan (karenanya kombinasinya). Karena protected
makna telah berubah 1 , mungkin ada kebutuhan untuk mengizinkan private
dan protected
pada saat yang sama. Pendahuluan menjadi terlalu rumit dan tidak layak, dan akhirnya dibatalkan. Pada saat Java 1.0 / JDK 1.0.2 bergulir, itu telah jatuh dan dengan demikian tidak dapat ditemukan dalam dokumentasi.
1 Dalam Spesifikasi Bahasa Oak , Bagian 4.10, Akses ke Variabel dan Metode , perlu dicatat bahwa pengubah default adalah protected
:
Secara default semua variabel dan metode dalam kelas dilindungi .
Ini sangat berbeda dari apa yang kita miliki hari ini, akses paket default. Ini mungkin telah membuka jalan bagi kebutuhan private protected
, karena private
terlalu membatasi dan protected
terlalu lunak.