Java中方法的默认作用域是什么?

Java中方法的默认作用域是什么?,java,scope,Java,Scope,如果我键入: void doThis(){ System.out.println("Hello Stackoverflow."); } doThis()的默认作用域是什么 公众?受保护的?私有?默认范围为“默认”。这很奇怪——有关更多信息,请参阅。默认范围是包私有。同一包中的所有类都可以访问该方法/字段/类。包私有范围比受保护范围和公共范围更严格,但比私有范围更宽松 更多信息: 任何定义为包私有的内容都可以由类本身、同一包内的其他类(但不在包外)以及子类访问 有关访问级别修饰符

如果我键入:

 void doThis(){
     System.out.println("Hello Stackoverflow.");
 }
doThis()的默认作用域是什么


公众?受保护的?私有?

默认范围为“默认”。这很奇怪——有关更多信息,请参阅。

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

更多信息:


任何定义为包私有的内容都可以由类本身、同一包内的其他类(但不在包外)以及子类访问


有关访问级别修饰符的方便表格,请参见…

如果没有访问修饰符,则类成员可以在声明它的整个包中访问。你可以从中学到更多


接口的成员总是可以公开访问的,无论是否显式声明。

如果您没有对方法进行任何修改,那么默认情况下,它将是在包中具有作用域的默认修改器。

有关更多信息,请参考

Java 8现在允许在具有默认作用域(仅限于静态)的接口内部实现方法。

事实并非如此:它是包私有的,我无法删除我的答案,因为它已被接受。我鼓励Joe接受@Esko的答案!第二个链接断开了(顺便说一句,很容易忽略这两个链接)“包默认值比…”更严格”可能还值得一提的是,在公开外部单元测试方法时,“包私有”是一个很好的使用范围,那么,除非您正在创建一个库或任何用户可以从中获得代码功能的东西,否则为什么有必要公开某些东西呢?@user3858162大多数非平凡的应用程序都被组织到多个包中,在这种情况下,从其他包调用方法需要公共作用域。