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
答案 0 :(得分:1)
如果您将某个类声明为public
,则file name
和class name
应该相同。否则,您将获得compile time error
。
因此,请将文件名从Blog.java
更改为First.java
。
答案 1 :(得分:0)
报告的错误非常明确:
类Blog public ,应在名为 Blog.java 的文件中声明
答案 2 :(得分:0)
java类总是应该具有相同的名称,其文件名(区分大小写),扩展名为.java。所以你应该保存它Blog.java
答案 3 :(得分:0)
因为它是Java Language Specification的一部分!您还可以查看Java教程中的Managing Source and Class Files。
答案 4 :(得分:0)
来自JLS
当且仅当包存储在文件系统(第7.2节)中时,主机 系统可以选择强制执行编译时的限制 如果在由...组成的名称下的文件中找不到类型,则会出错 类型名称加上一个扩展名(如.java或.jav) 以下是真的:
•该类型由其他编译单元中的代码引用 声明类型的包。
•该类型被声明为公共类型(因此可以访问 从其他包中的代码)。
此限制意味着每个最多必须有一个这样的类型 编译单位。这种限制使Java编译器变得容易 在包中查找命名类。在实践中,许多程序员 选择将每个类或接口类型放在自己的编译中 单位,无论是公开的还是由其他代码引用的 编制单位。