[java] Java에서 메소드의 기본 범위는 무엇입니까?

내가 입력하면 :

 void doThis(){
     System.out.println("Hello Stackoverflow.");
 }

기본 범위는 doThis()무엇입니까?

공공의? 보호? 은밀한?



답변

기본 범위는 package-private입니다. 동일한 패키지의 모든 클래스는 메소드 / 필드 / 클래스에 액세스 할 수 있습니다. 패키지-개인은 보호 및 공개 범위보다 엄격하지만 개인 범위보다 더 허용됩니다.

추가 정보 :
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
http://mindprod.com/jgloss/scope.html


답변

패키지 private으로 정의 된 것은 클래스 자체, 동일한 패키지 내의 다른 클래스에 의해 액세스 될 수 있지만 서브 클래스가 아닌 패키지 외부에서는 액세스 할 수 없습니다.

편리한 액세스 수준 수정 자 표는 이 페이지 를 참조하십시오 .


답변

액세스 수정자가 없으면 선언 된 패키지 전체에서 클래스 멤버에 액세스 할 수 있습니다. Java 언어 사양 §6.6 에서 자세한 내용을 확인할 수 있습니다 .

인터페이스의 멤버는 명시 적으로 선언되었는지 여부에 관계없이 항상 공개적으로 액세스 할 수 있습니다.


답변

기본 범위는 “default”입니다. 이상 합니다. 자세한 내용은 참조 를 참조하십시오.


답변

Java 8에서는 이제 기본 범위를 사용 하여 인터페이스 자체 내에서 메소드를 구현할 수 있습니다 (정적 전용).


답변

메소드에 수정자를 제공하지 않으면 기본적으로 패키지 내에 범위가있는 기본 수정자가됩니다.
자세한 내용은 http://wiki.answers.com/Q/What_is_default_access_specifier_in_Java 를 참조하십시오 .


답변