修改被标记为重复或更清楚为什么它似乎是重复。当时我不知道那个包和默认的地方因为这个帖子的原因相同。
现在我正在准备我的Java考试的考试问题,我有一个问题要求我解释访问修饰符,并向我询问有关修饰符的问题。
我可以找到有关私有,受保护,公开和默认的信息,但无法在Package上找到任何内容。
有人可以给我一个答案或链接我一篇关于它的文章吗?
答案 0 :(得分:7)
package-private
不是真正的modifier。您无法键入package-private
并让系统将其识别为访问修饰符。它实际上是默认值,不包括任何其他修饰符。
这意味着只能在同一个包中访问给定成员。
例如,com.hexafraction.Cow
可以在com.hexafraction.Dog
中访问具有默认修饰符(实际上没有)的成员,但com.foo.Crow
无法访问该成员,因为它不在同一个pacakge中。< / p>
在此示例中,以下内容组成Cow
:
pacakge com.hexafraction;
class Cow{
void moo(){ //no public, protected, or private modifier
System.out.println("moo!");
}
}
编辑未来:在Java 8中,package
将被认为是此需要的修饰符。字面上输入default
仍然不适用于此。
答案 1 :(得分:3)
所谓的“包私有”访问级别是在没有private
,protected
或public
等修饰符的情况下发生的。
示例:
public class Test {
int test; // package-private
}
同一个包中的任何东西,即使是一个不相关的类,都可以访问它,但是包外的其他类(甚至类的子类)都无法访问它。