当 class 带有访问修饰符 public 当 java 文件的文件名和 class 名称不同时会发生什么

what is happening when a class with access modifier public when a java file with file name and class name different

我刚刚写了一个这样的代码,文件名为 b.java

public class a{
    public static void main(String args[]){
        System.out.println("Hii");
    }
}

它给出这样的错误

error: class a is public, should be declared in a file named a.java

如果我删除 class 前面的访问修饰符 public 运行 很好。 有没有其他解决方案来实现我不想更改 class 的名称或文件名,除非有 重要原因

如果是请说明原因。为什么我们应该给出文件名和 class 同名的文件名。

如果将 class 定义为 public,则 class 名称应与文件名匹配。

我们将任何 class 定义为 public 的原因是为了让其他 classes 或其他包中的代码可以访问它。

这种以 class 名称命名文件名的规则使编译器很容易找到 class.

同样在JAVA中,一个文件中我们只能有一个publicclass。