一尘不染

为什么每个公共类都放在单独的文件中?

java

我最近开始学习Java,发现每个Java类都必须在单独的文件中声明非常奇怪。我是C#程序员,C#并没有实施任何此类限制。

Java为什么要这样做?有设计上的考虑吗?

编辑(基于几个答案):

为什么在IDE时代Java现在不取消此限制?这不会破坏任何现有代码(或者会破坏吗?)。


阅读 234

收藏
2020-09-08

共1个答案

一尘不染

根据Java语言规范,第三版

这种限制意味着每个编译单元最多只能有一个这样的类型。 这种限制使Java编程语言的编译器或Java虚拟机的实现易于在包中查找命名类 ;
例如,可以在目录wet /
sprocket的Toad.java文件中找到公共类型wet.sprocket.Toad的源代码,并在同一目录的Toad.class文件中找到相应的目标代码。

重点是我的。

似乎基本上他们希望将OS的目录分隔符转换为命名空间的点,反之亦然。

是的,这是某种设计上的考虑。

2020-09-08