如果我输入:
void doThis(){
System.out.println("Hello Stackoverflow.");
}
doThis()
的默认范围是什么?
公共?受保护的?私人?
答案 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现在允许在界面内部实现具有默认范围(仅限静态)的方法。