【发布时间】:2015-08-06 19:54:29
【问题描述】:
当我在 Java 中对包和包私有类进行一些测试时,我注意到一件有趣的事情。以下是我的项目源码结构,源码文件夹src下包com.test.pkg中的类MyTestClass.java是包保护类。据我了解,这不应该在这个包之外访问。但是,有趣的是MyTestClass.java 类也可以在源文件夹test 下的com.test.pkg 中访问。仅当包名称相同时才会发生这种情况,尽管它们位于不同的源文件夹中。
谁能告诉我为什么会这样?
TestProject
|
-src
-com.test.pkg
-MyTestClass.java
-test
+com.test.pkg
【问题讨论】:
-
为什么不呢,它是同一个包......它们是否在不同的目录或jar中都没关系。无论如何都是同一个包。
-
感谢您的信息。如果是这样,源文件夹的来源有什么用(src,在这种情况下是测试)。这只是为了组织目的吗?
-
@k0der - 当您
import上课时,您是否在课程路径中包含src?不对吧?。你从com.test....开始。所以,src和test处于同一级别,代表一个global父目录。所以,包是一样的。 -
那只是为了组织你的测试和应用程序代码...
-
@TheLostMind - 明白了。谢谢!
标签: java packages package-private