Loại bỏ các sửa đổi truy cập
Java ban đầu có bộ private protected
sửa đổi, nhưng nó đã bị xóa trong JDK 1.0.2 ( phiên bản ổn định đầu tiên , Java 1.0 mà chúng ta biết ngày nay). Một vài hướng dẫn về JDK 1.0.2 ( ở đây và ở đây ) nói như sau:
Lưu ý: Bản phát hành 1.0 của ngôn ngữ Java hỗ trợ năm cấp truy cập: bốn cấp được liệt kê ở trên cộng private protected
. Mức private protected
truy cập không được hỗ trợ trong các phiên bản Java cao hơn 1.0; bạn không nên sử dụng nó trong các chương trình Java của mình nữa.
Một câu trả lời khác trên SoftwareEngineering.SE nêu rõ:
Java ban đầu có một sửa đổi như vậy. Nó đã được viết private protected
nhưng bị xóa trong Java 1.0.
Bây giờ hãy xem Lịch sử Phiên bản Java :
JDK 1.0
Phiên bản đầu tiên được phát hành vào ngày 23 tháng 1 năm 1996 và được gọi là Oak. Phiên bản ổn định đầu tiên, JDK 1.0.2, được gọi là Java 1.
Từ đó, chúng ta có thể kết luận các hướng dẫn về phiên bản 1.0.2 đề cập đến phiên bản đầu tiên, JDK 1.0, trong đó ngôn ngữ được gọi là Oak, nhưng ngôn ngữ từ SoftwareEngineering.SE đề cập đến phiên bản ổn định đầu tiên, JDK 1.0.2 được gọi là Java 1.0, nơi nó đã được gỡ bỏ.
Bây giờ nếu bạn cố gắng tìm kiếm nó trong tài liệu Java 1.0 , bạn sẽ không tìm thấy nó, vì như đã đề cập trước đó, nó đã bị xóa trong JDK 1.0.2, còn được gọi là Java 1.0. Điều này được chứng minh một lần nữa khi bạn nhìn vào lần "Sửa đổi lần cuối" cho liên kết bạn đã đăng. Liên kết bạn đã đăng được sửa đổi lần cuối vào tháng 2 năm 1996. Java 1.0 / JDK 1.0.2, khi private protected
bị xóa, được phát hành sau tháng 2 năm 1996 và theo đặc tả, tháng 8 năm 1996.
Lý do để loại bỏ
Một số nguồn cũng giải thích lý do private protected
, chẳng hạn như cái này . Để trích:
Những gì đã được bảo vệ tư nhân?
Ban đầu, ngôn ngữ Java cho phép một số tổ hợp sửa đổi nhất định, một trong số đó là private protected
. Ý nghĩa của private protected
việc giới hạn tầm nhìn nghiêm ngặt đối với các lớp con (và loại bỏ quyền truy cập gói). Điều này sau đó được coi là hơi không nhất quán và quá phức tạp và không còn được hỗ trợ. [5]
[5] Ý nghĩa của công cụ protected
sửa đổi đã thay đổi trong bản phát hành Beta2 của Java và sự private protected
kết hợp xuất hiện cùng một lúc. Họ đã vá một số lỗ hổng bảo mật tiềm năng, nhưng khiến nhiều người bối rối.
Và SoftwareEngineering.SE cũng hỗ trợ điều này, bằng cách nói rằng nó không xứng đáng với sự không nhất quán và độ phức tạp thêm, vì vậy nó đã bị xóa sớm.
Diễn dịch
Giải thích của tôi về tất cả những điều này là có lẽ, trở lại thời Oak, cả hai đều được phép cùng tồn tại (do đó là sự kết hợp). Vì protected
ý nghĩa của nó đã thay đổi 1 , có thể cần phải cho phép private
và protected
đồng thời. Phần giới thiệu trở nên quá phức tạp và không có giá trị, và cuối cùng đã bị loại bỏ. Vào thời điểm Java 1.0 / JDK 1.0.2 xuất hiện, nó đã bị loại bỏ và do đó không thể tìm thấy trong tài liệu này.
1 Trong Đặc tả ngôn ngữ Oak , Phần 4.10, Truy cập các biến và phương thức , lưu ý rằng công cụ sửa đổi mặc định là protected
:
Theo mặc định, tất cả các biến và phương thức trong một lớp được bảo vệ .
Điều này khá khác với những gì chúng ta có ngày nay, truy cập gói mặc định. Điều này có thể đã mở đường cho nhu cầu private protected
, bởi vì private
quá hạn chế và protected
quá khoan dung.