包名称与文件夹结构不同,但 Java 代码仍会编译
我正在使用Notepad ++编写我的Java代码和命令提示符来编译和运行它。以下是我的示例 Java 代码,
package abraKadabra;
public class SuperClass{
protected int anInstance;
public static void main(String [] abc){
System.out.println("Hello");
}
}
但是,此文件位于以下文件夹结构中:
“usingprotected\superPkg”(usingProtected 是 C:中层次结构中某个位置的文件夹)
所以,我在这里的软件包名称应该像使用Protected.superPkg而不是我写的abraKadabra一样。
但是,当我从命令提示符编译此Java代码时,它编译良好,没有错误或警告。为什么会这样?包名称是否应遵循文件夹结构?如果它应该,它将如何坚持?
例如,如果我的软件包名称使用Protected.superPkg,编译器会以相反的顺序检查。当前工作目录应为 superPkg,则父目录应使用受保护且已完成。它是如何使用包名称检查文件夹结构的吗?