类和文件的名称相同,为什么?

utk*_*rsh 4 java

为什么我们必须保存一个名称与公共类的类名相同的文件?

public class Indian{ 
     public static void main (String args []){
          System.out.println ("i am a programmer");
     }
}
Run Code Online (Sandbox Code Playgroud)

这个类必须用名字Indian保存.为什么这是一个约定?

Mic*_*ski 5

因为它是Java编译器强加的约束.为什么会这样?对于订单,简单.想象一个包含300个类的巨大项目,所有类都包含不同名称的类.