0

我正在尝试一些代码以更好地理解访问修饰符。我只添加了一行代码后一切都运行良好

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(). 它编译得很好,但不运行。

4

2 回答 2

2

我看不出您提供的代码有任何明显错误。

你重命名文件了吗?

JVM 将在与文件名完全相同的类中查找 main 方法。在这种情况下,您的文件应命名为

DemoClass1.java
于 2013-02-19T00:47:56.347 回答
0

你的代码没有错。将每个类保存在其各自的文件(DemoClass1.javaSomeClass2.javaSomeClass3.java中。

一切编译和执行都很好,无论有没有somemethod.

于 2013-02-19T00:51:20.023 回答