在Java源文件中,不一定非要有public类。但是,如果你的源文件包含一个public类,那么这个类的名称必须与源文件名相同。这是因为Java编译器会将每个public类编译成一个单独的.class文件,而这些.class文件的名称是根据public类的名称来命名的。
例如,如果你的源文件名为MyClass.java
,那么你可以在其中定义一个名为MyClass
的public类,或者只定义一个非public类(没有访问修饰符)。但是,如果你在这个源文件中定义了一个public类,那么这个类的名称必须是MyClass
。