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

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(); } } 

}

你好! 我是stackoverflow的新手,所以请原谅我糟糕的编辑。

我是Java的新手,我无法弄清问题究竟在哪里以及问题是什么。 我在行public static void main(String[]args)上得到以下错误:

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

我正在使用eclipse,我正在做一些简单的java练习。 我搜索了问题,但答案通常与更复杂的代码相关。

我如何解决它以及导致以下错误的原因是什么? 我很感激对这个特殊例子的解释。

干杯!

您在PerkusjaTester中声明了您的主要方法,这是PerkusjaTester的内部类。 那是被禁止的。

您应该在Perkusja类之外声明您的测试类

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

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

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

最好的解决方法是编写static class PerkusjaTester {

然后main是可访问。