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

时间:2009-04-03 16:57:32

标签: java scope

如果我输入:

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

doThis()的默认范围是什么?

公共?受保护的?私人?

6 个答案:

答案 0 :(得分:246)

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

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

答案 1 :(得分:19)

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

请参阅this page以获取一个方便的访问级别修饰符表...

答案 2 :(得分:8)

如果没有访问修饰符,则可以在声明它的整个包中访问类成员。您可以从Java Language Specification, §6.6.

了解更多信息

界面的成员始终可公开访问,无论是否明确声明。

答案 3 :(得分:4)

默认范围是“默认”。这很奇怪 - 有关详细信息,请参阅these references

答案 4 :(得分:0)

如果您没有为您的方法提供任何修饰符,那么默认情况下它将是默认修饰符,其中包含范围。
有关详细信息,请参阅http://wiki.answers.com/Q/What_is_default_access_specifier_in_Java

答案 5 :(得分:0)

Java 8现在允许在界面内部实现具有默认范围(仅限静态)的方法。