액세스 수정 자 제거
Java에는 원래 private protected
수정자가 있었지만 JDK 1.0.2 (최초의 안정적인 버전, 현재 알려진 Java 1.0) 에서 제거되었습니다 . JDK 1.0.2 ( here 및 here ) 에 대한 몇 가지 자습서 는 다음을 말합니다.
참고 : Java 언어의 1.0 릴리스는 5 가지 액세스 레벨을 지원했습니다 private protected
. 위에 나열된 4 가지 더하기 private protected
액세스 레벨 1.0 이상의 자바 이상 버전에서 지원되지 않습니다; Java 프로그램에서 더 이상 사용하지 않아야합니다.
SoftwareEngineering.SE에 대한 또 다른 답변은 다음과 같습니다.
Java에는 원래 그러한 수정자가있었습니다. private protected
Java 1.0에서 작성 되었지만 제거되었습니다.
이제 Java Version History를 살펴보십시오 .
JDK 1.0
첫 번째 버전은 1996 년 1 월 23 일 에 릴리스되었으며 오크라고합니다. 첫 번째 안정 버전 인 JDK 1.0.2는 Java 1이라고합니다.
이것으로부터, 버전 1.0.2에 관한 튜토리얼은 언어가 오크 (Oak)라고 불리는 첫 번째 버전 인 JDK 1.0을 참조하지만 SoftwareEngineering.SE에있는 튜토리얼은 Java라는 JDK 1.0.2를 의미합니다. 1.0이 제거되었습니다.
이제 Java 1.0 documentation 에서 검색하려고하면 찾을 수 없습니다. 앞에서 언급 한 것처럼 JDK 1.0.2에서 제거 되었기 때문에 Java 1.0이라고합니다. 이것은 게시 한 링크의 "최종 수정"시간을 볼 때 다시 입증됩니다. 게시 한 링크는 1996 년 2 월에 마지막으로 수정되었습니다. Java 1.0 / JDK 1.0.2 는 1996 년 2 월 이후private protected
에 릴리스되었으며 1996 년 8 월 사양에 따라 릴리스 되었습니다 .
제거 사유
일부 소스는 이유를 설명하는 private protected
등, 이 중 하나. 인용 :
개인 보호 란 무엇입니까?
초기에 Java 언어는 특정 조합의 수정자를 허용했습니다 private protected
. 의미는 private protected
가시성을 서브 클래스로 엄격하게 제한하고 패키지 액세스를 제거 하는 것이 었습니다. 이것은 나중에 다소 일관성이없고 지나치게 복잡하다고 간주되어 더 이상 지원되지 않습니다. [5]
[5] protected
Java의 Beta2 릴리스에서 수정 자의 의미가 변경되었으며 그 private protected
조합이 동시에 나타났습니다. 그들은 잠재적 인 보안 허점을 패치했지만 많은 사람들을 혼란스럽게했습니다.
또한 SoftwareEngineering.SE는 불일치 및 추가 복잡성에 대한 가치가 없으므로 초기에 제거되었다고 말함으로써이를 지원합니다.
해석
이 모든 것에 대한 나의 해석은 아마도 오크 시절에 둘 다 공존 할 수 있었기 때문입니다 (따라서 조합). 이후 protected
'의 의미를 변경했다 1 , 수에 대한 필요성이 있을지도 모른다 private
과 protected
동시에. 소개가 너무 복잡 해져서 가치가 없었으므로 결국 삭제되었습니다. Java 1.0 / JDK 1.0.2가 롤백 될 때 삭제되었으며 문서에서 찾을 수 없습니다.
1 에서 오크 언어 사양 , 섹션 4.10, 변수와 메소드에 대한 액세스 ,이 기본 수정 이었다는 것을 알 수있다 protected
:
기본적으로 클래스의 모든 변수와 메소드는 보호됩니다 .
이것은 오늘날의 기본 패키지 액세스와는 상당히 다릅니다. 이것은 너무 제한적이고 너무 관대 private protected
했기 때문에 의 필요성에 대한 길을 닦았을 것입니다 .private
protected