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


165

如果输入:

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

默认范围是doThis()什么?

上市?受保护?私人的?

Answers:


264

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

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


2
“软件包默认值比...更严格”
reinaldoluckman 2011年

7
值得一提的是,在公开外部单元测试的方法时,“ package-private”是一个很好的使用范围。
加里·罗

1
如果是这种情况,那么为什么除非您正在创建创建库或从中获取用户代码功能的任何东西,否则为什么有必要将某些内容公开?
丹尼尔(Daniel)

2
@ user3858162大多数非平凡的应用程序被组织到多个程序包中,在这种情况下,需要公共作用域才能从其他程序包中调用调用方法。
Esko Luontola 2015年

19

定义为私有包的任何东西都可以由该类本身,同一包内的其他类访问,但不能在包外,也不能由子类访问。

请参阅此页面以获取方便的访问级别修饰符表...




1

Java 8现在允许使用默认范围(仅静态)在接口本身内部实现方法。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.