我正在尝试使用一些代码来更好地理解访问修饰符。在我添加了一行代码之后,一切都运行良好
class SomeClass2 {
protected static void method4() { }
protected static int x=0;
}
class SomeClass3 extends SomeClass2{
int c=SomeClass2.x;
public void somemethod() //Everything was compiling fine until
{ //Until I added this method
SomeClass2.method4();
}
}
class DemoClass1{
public static void main(String[] parameters) {
SomeClass2 sc = new SomeClass2();
SomeClass3 sc1 = new SomeClass3();
sc.method4();
System.out.println(sc1.c);
sc1.somemethod();
}
}
我收到错误:Could not find or load main class DemoClass1
所有类都属于同一目录和相同的包。环境变量也都设定了。在我添加somemethod()
之前,它正在编译并正常运行。它编译得很好,但没有运行。
答案 0 :(得分:2)
我没有看到您提供的代码有任何明显错误。
您是否重命名了该文件?
JVM将查找名称与文件名完全相同的类中的main方法。在这种情况下,您的文件应命名为
DemoClass1.java
答案 1 :(得分:0)
您的代码没有错。将每个类保存在各自的文件中(DemoClass1.java
,SomeClass2.java
和SomeClass3.java
)。
编译和执行的所有内容都很好,无论是否有somemethod
。