"The method main cannot be declared static; static methods can only be declared in a static or top


class Perkusja {
  boolean talerze = true;
  boolean beben = true;
  void zagrajNaBebnie() {
    System.out.println("bam, bam, baaaa-am-am");
  }
  void zagrajNaTalerzach() {
    System.out.println("brzdęk, brzbrzrzdęęk");
  }
  class PerkusjaTester {
    public static void main(String[] args) {
        Perkusja p = new Perkusja();
    }
  }
}

你好!我是堆栈溢出的新手,所以请原谅我的残暴编辑。

我是Java的新手,我无法弄清楚问题到底在哪里以及问题是什么。我收到以下错误 public static void main(String[]args)

方法

main 不能声明为静态;静态方法只能在静态或顶级类型中声明

我正在使用 eclipse,并且正在做一些简单的 Java 练习。我用谷歌搜索了这个问题,但答案通常与更复杂的代码段有关。

如何修复它,以下错误的原因是什么?如果能对这个特定示例进行解释,我将不胜感激。

干杯!

您正在声明您的 main 方法,PerkusjaTester 这是一个 Perkusja 的内部类。这是被禁止的。

您应该在类

Perkusja 之外声明您的测试类

注意:PerkusjaTester是一个内部类,而不是一个静态嵌套类。这就是为什么PerkusjaTester不是静态类型的原因。正如Jon Skeet所提到的,您还可以在类PerkusjaTester上添加关键字static

此代码不起作用,因为从概念上讲,必须在调用main之前声明Perkusja的实例。

这是因为内部类PerkusjaTester标记为静态。

最适合您的解决方法是编写 static class PerkusjaTester { .

然后main可以访问。

PerkusjaTester 中的主要方法是禁止的内部类Perkusja。考虑到您是新手,我可以给出的简单答案是,删除最后一个大括号并将其放在class PerkusjaTester上方,错误将被删除。

相关内容

最新更新