Java:为什么每个类都要写包

mds*_*mmo 0 java

既然所有java类文件都放在一个与classes包匹配的目录中,为什么每个类都需要在顶部的包声明?编译器不应该能够从目录结构中获取包吗?

Kay*_*man 5

因为源文件不需要在相同的目录结构中。您可以(理论上,这没有多大意义)将所有源文件放在同一目录中,并且在编译后它们会以正确的基于包的结构结束。