当我在Java中使用包和包私有类进行一些测试时,我注意到了一件有趣的事情。以下是我的项目源结构,源文件夹BaseClass
下的包MyTestClass.java
中的类com.test.pkg
是受包保护的类。根据我的理解,这个包不应该在这个包之外。但是,有趣的是,src
类也可以在源文件夹MyTestClass.java
下的com.test.pkg
中访问。仅当包名称相同时才会发生这种情况,尽管它们位于不同的源文件夹中。
有人能告诉我为什么会这样吗?
test
答案 0 :(得分:2)
在这种情况下,源目录根本不重要。重要的是:包名称是相同的,因此这两个类属于同一个包 - 一切都是正确的。