在Java源文件中,不一定非要有public類。但是,如果你的源文件包含一個public類,那么這個類的名稱必須與源文件名相同。這是因為Java編譯器會將每個public類編譯成一個單獨的.class文件,而這些.class文件的名稱是根據public類的名稱來命名的。
例如,如果你的源文件名為MyClass.java,那么你可以在其中定義一個名為MyClass的public類,或者只定義一個非public類(沒有訪問修飾符)。但是,如果你在這個源文件中定義了一個public類,那么這個類的名稱必須是MyClass。