这个设计其实很巧,其设计的初衷是为了避免结构混乱而设计的。javc编译器将.java文件看作一个编译单元。且该编译单元里最多只能有一个public类,且该类与.java文件名相同。这样带来的好处是结构清晰,看着文件名就知道该类是什么。
并且如果可以有多个public的类,那么其提供访问权限的范围就超出了包,就很容易和其他包下的同名类冲突,并且不好查看,虽然可以通过完全限定名来访问,但这样的结构很显得很凌乱。
这个设计其实很巧,其设计的初衷是为了避免结构混乱而设计的。javc编译器将.java文件看作一个编译单元。且该编译单元里最多只能有一个public类,且该类与.java文件名相同。这样带来的好处是结构清晰,看着文件名就知道该类是什么。
并且如果可以有多个public的类,那么其提供访问权限的范围就超出了包,就很容易和其他包下的同名类冲突,并且不好查看,虽然可以通过完全限定名来访问,但这样的结构很显得很凌乱。