Java中方法的默认范围是什么?

Joe*_*ana 160 java scope

如果我输入:

 void doThis(){
     System.out.println("Hello Stackoverflow.");
 }
Run Code Online (Sandbox Code Playgroud)

什么是默认范围doThis()

上市?受保护的?私人的?

Esk*_*ola 256

默认范围是package-private.同一个包中的所有类都可以访问方法/字段/类.Package-private比受保护和公共范围更严格,但比私有范围更宽松.

更多信息:
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
http://mindprod.com/jgloss/scope.html

  • 可能还值得一提的是,"package-private"在暴露外部单元测试方法时是一个很好的范围. (7认同)
  • "包装默认比......更严格" (2认同)
  • @ user3858162大多数非平凡的应用程序被组织成多个包,在这种情况下,需要公共范围来从其他包调用调用方法. (2认同)

小智 19

任何定义为包private的内容都可以由类本身,同一包中的其他类访问,但不能在包外部访问,而不能由子类访问.

有关访问级别修饰符的便捷表,请参阅此页面 ...


eri*_*son 9

如果没有访问修饰符,则可以在声明它的整个包中访问类成员.您可以从Java语言规范§6.6中了解更多信息.

无论是否明确声明,接口的成员始终可公开访问.


Mic*_*ren 5

默认范围是“默认”。很奇怪- 有关更多信息,请参见这些 参考

  • 其实不是:包私有 (3认同)
  • 我的答案已被接受,因此无法删除。我鼓励乔接受@Esko的回答! (2认同)