2014-09-17 8 views
0

protected 변수는 패키지 내의 모든 클래스에 대한 액세스이며 패키지 외부의 기본 클래스 extends 인 하위 클래스에만 액세스 할 수 있습니다.보호 된 변수가 클래스 수준에서 표시되는 이유는 무엇입니까?

Java가 패키지에서 private 대신 패키지 내 기본값 인 이유는 무엇입니까?
이것은 변수에 대한 액세스를 차단하는 데 목적이 있습니다.

자바에서 보호 된 액세스 한정자의 정의는 classA를 정의 할 경우 protected 변수 x을 가지고 있다는 것입니다 - 다음 x은 같은 패키지의 모든 클래스에 볼 수 있으며 package하지만 extends classA 외부 모든 클래스로도 볼 수 있습니다. 패키지 수준에서는 기본 액세스 대신 private이되어야한다고 생각합니다. 나는 자바가 그 뒤에 좋은 이유가 있을지도 모른다고 확신한다. 나는 이것이 무엇인지 알기를 원한다.

+3

질문을 이해할 수 없습니다. –

+0

java에서 protected access modifier의 정의는 classA에 보호 된 변수 x가있는 경우 x가 동일한 패키지의 모든 클래스에서 볼 수 있으며 패키지 외부의 모든 클래스에서 볼 수 있지만 classA를 확장합니다. 패키지 수준에서는 기본 액세스 대신 비공개가되어야한다고 생각합니다. 나는 자바가 그 뒤에 좋은 이유가 있을지도 모르겠다. 나는 이것이 무엇인지 알기를 원한다. – user892871

+0

굉장, 모든 질문에 넣어. –

답변

2

Java "패키지"는 정의에 따라 동일한 녀석에 의해 구현되고 (일반적으로) 함께 작동하는 일련의 클래스입니다. 자신의 패키지에서 데이터를 숨기는 것은 비생산적입니다. 모든 것을 썼기 때문에 패키지의 모든 것을 신뢰해야합니다.

정말 모든 사람 (심지어 패키지 내의 다른 클래스)에서 변수를 숨기려면 "비공개"로 설정하십시오.