-6
class Blog{
    public static void main(String args[]){
        System.out.println("overflow");
    }
}

我用名称 First.java 保存这个文件并编译它,而不是用 Blog.class 生成文件并给出输出:

overflow

如果我正在编写相同的程序,如下所示:-

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

编译后报错

   First.java:3: error: class Blog is public, should be declared in a file named Blog.java
4

5 回答 5

1

如果你声明一个类,public那么file nameclass name应该相同。否则你会得到compile time error
因此,将您的文件名更改为Blog.javafrom First.java

于 2013-09-18T17:50:25.050 回答
0

因为它是Java 语言规范的一部分!您还可以查看Java 教程中的管理源文件和类文件

于 2013-09-18T18:03:18.253 回答
0

报错真的很清楚:

类 Blog 是公共的,应该在一个名为Blog.java的文件中声明

于 2013-09-18T17:51:48.223 回答
0

java 类的名称应始终与其文件名相同(区分大小写),扩展名为 .java。所以你应该保存它 Blog.java

于 2013-09-18T17:53:40.317 回答
0

来自JLS

当且仅当包存储在文件系统中(第 7.2 节)时,如果在由类型名称组成的名称下的文件中未找到类型,主机系统可能会选择强制限制它是编译时错误如果满足以下任一条件,则加上扩展名(例如 .java 或 .jav):

• 该类型由声明该类型的包的其他编译单元中的代码引用。

• 类型被声明为公共的(因此可以从其他包中的代码访问)。

这个限制意味着每个编译单元最多只能有一个这样的类型。此限制使 Java 编译器可以轻松地在包中找到命名类。在实践中,许多程序员选择将每个类或接口类型放在自己的编译单元中,无论它是公共的还是被其他编译单元中的代码引用。

于 2013-09-18T18:14:58.650 回答