Java:액세스 수정이 더 제한적인 것보다'보호',보 다 제한이 적을 경우,더욱 엄격한'개'?
-
06-07-2019 - |
문제
내가 원하는 비슷한 protected
, 는 클래스를 구현하는 protected
분야 및 하위 클래스에 액세스할 수 있습니다.
그래서 나는 할 수 있어야에 변수를 선언하는 기본 클래스 private
, 지만,여전히 수 있에서 액세스할 수 있는 서브 클래스.
아마도 이것은 아주 자연의 서브 클래스, private
, 고/또는 protected
.
가 이와 같은 존재하에서 Java?
해결책
Java에는 필드에 대한 4 개의 액세스 레벨 만 있습니다.
private
- 패키지-프라이버시 (기본값; 액세스 수정자가 없음)
protected
public
protected
하위 클래스, 동일한 패키지의 다른 클래스 및 클래스 자체의 멤버가 액세스 할 수 있도록 허용합니다. protected
회원.
짧은 대답은 원하는 것을 정확하게 달성 할 수있는 방법이 없다는 것입니다.
이 4 개의 액세스 수정 자에 대한 설명을 위해 수업 구성원에 대한 액세스 제어 ~에서 Java 튜토리얼 더 구체적인 정보가 있습니다.
다른 팁
을 제어하는 경우에는 코드,항상 제어할 수 있습니다 무엇으로 패키지와 함께 공공 무다-그것은 혼자가에서 패키지만 서브 클래스에 액세스할 수 있는 회원은 당신을 유지하려는 개인을 제외한 서브 클래스.
아니요, 아니요 액세스 수정 자 정확히 그렇게합니다. 그만큼 protected
수정자는 가장 가까운 것이지만, 이는 동일한 패키지뿐만 아니라 동일한 패키지 (동일한 패키지 안 또는 외부)에 필드를 노출시킵니다.
불가능합니다. U는 여전히 변수를 비공개로 선언 한 다음 슈퍼 클래스의 변수를 수정하는 공개 메소드를 선언 할 수 있습니다. 그런 다음 변수에서 공개 메소드를 호출합니다.