【发布时间】:2014-01-20 10:39:12
【问题描述】:
我知道在 java 文件中声明的public 类的名称必须与其文件名相同。但我想知道这怎么没有给我一个编译错误,而是它运行成功。
class Foo //<-- this can be any name...
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
我知道默认访问权限是package private。对于上述程序,类名和文件名不必相同。它正在正确执行,而不是编译器错误。
任何人都可以发光吗?谢谢。
编辑:
现在我明白了!但另一个问题打动了我。当同一个文件中有两个这样的类时会发生什么?
好吧,我以为会从实现了main 方法的类中生成一个.class 文件。没有任何编译错误,但令我惊讶的是,也没有生成任何.class 文件。为什么会这样?
【问题讨论】:
-
在一个 java 文件中保留两个具有公共访问说明符的类。一个有主,一个没有主。您将收到警告或错误。
-
@Rahul:我看不出这与问题有什么关系。
标签: java class access-specifier