Java类用另一个名字保存?

时间:2013-09-18 17:47:59

标签: java

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

5 个答案:

答案 0 :(得分:1)

如果您将某个类声明为public,则file nameclass 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编译器变得容易   在包中查找命名类。在实践中,许多程序员   选择将每个类或接口类型放在自己的编译中   单位,无论是公开的还是由其他代码引用的   编制单位。