我们用一个例子来说明
源文件名:Test.java
class前没有public
class homework{
public static void main(String[] args){
System.out.println("文件名和类名是否一致问题");
}
}
编译:javac Test.java
运行:java homework
编译和运行都没有报错
如果代码中,class前有public
public class homework{
public static void main(String[] args){
System.out.println("文件名和类名是否一致问题");
}
}
那么,如果此时编译时(javac Test.java)会报错
Test.java:1: 错误: 类homework是公共的, 应在名为 homework.java 的文件中声明
public class homework1 {
^
1 个错误
总结
如果class不是public的,那么xx.java源文件名可以和类名不一样
如果class是public的,那么xx.java源文件名必须和类名一样