java文件名和类名要求

在随手写小例子的时候

import java.util.*;

public class MyClass {
    int a = 10;
}

public class hello {
    public static void main(String[] args){
        MyClass class1 = new MyClass();
	MyClass class2 = new MyClass();
	System.out.println(class1.a);
	System.out.println(class2.a);
    }
}

云里雾里,居然说java源文件应该是MyClass.java,可我main函数写在了hello类里了

# javac hello.java hello.java:3: error: class MyClass is public, should be declared in a file named MyClass.java public class MyClass { ^ 1 error

而将类MyClass前面的public去掉,编译就不会报错了,可见这里是自己的误解,文件名应该与文件中唯一的一个public类名一致,当然main函数还是在这个public类里,好吧,自己实在是有点弱

要求有以下几点:

1:一个java源文件中只能有一个public类

2:假如只有一个类,文件名和类名一致

3:假如不止一个类,有public类的话,文件名和public类名一致

4:假如不止一个类,没有public类,文件名随意和哪个类名一致

发表评论