class HelloObject {
void speak() {
System.out.println("Hello (from object)!");
}
}
class HelloTester {
public static void main(String[] args) {
HelloObject object = new HelloObject();
object.speak();
}
}
Run Code Online (Sandbox Code Playgroud)
当我将"HelloTester"类名更改为类似"HelloTester2"的程序时,程序突然起作用.类文件名为ClassesBegin.java.
当我尝试更改类的名称时,为什么java程序不起作用?
编辑:对不起,我应该澄清更多.我将类名更改为HelloTestera,这是我得到的错误:线程"main"中的异常java.lang.NoClassDefFoundError:HelloTester但即使文件名与类名无关,它也能正常工作.当文件名为ClassesBegin.java时,它与HelloTester一起使用
您需要更改文件名,而不仅仅是类名.
在Java中,.java和.class名称必须与类名相同.
因此,每个类必须使用其名称转到单独的文件,以便创建单独的.class文件.
将两个不同的类放在同一个文件中的是C++实践,它与编译模型一起使用,而不是Java.
编辑:用户最终澄清了导致他的错误的原因,所以显然我的答案与此无关.以上所有内容均适用于公共课程.虽然我不得不说我认为这是一种可怕的做法,但您可以将其用于包级别的课程.如果您打算在包中使用多个类,请为其提供自己的文件.如果它仅由一个类使用,那么将其作为内部类...