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();
}
}
}
Hello! I'm new to stackoverflow so please forgive me my atrocious editing.
I'm new to Java and i can't figure out where exactly the issue lies and what's the problem.
I get the following error on the line
public static void main(String[]args)
:
The method main cannot be declared static; static methods can only be declared in a static or top level type
I'm using eclipse and i'm doing some simple java exercises. I googled the problem but the answers are usually related to much more complex pieces of code.
How do i fix it and what's the cause of the following error? I'd be grateful for an explanation on this particular example.
Cheers!
You are declaring your main method in
PerkusjaTester
which is an inner class ofPerkusja
. That is forbidden.You should declare your test class outside of class
Perkusja
Note :
PerkusjaTester
is an inner class, not a static nested class. That is whyPerkusjaTester
is not a static type. As mentionned by Jon Skeet, you could also add the keywordstatic
on classPerkusjaTester
.This code cannot work since, conceptually, an instance of an
Perkusja
would have to be declared in advance ofmain
being called.This is because the inner class
PerkusjaTester
is not marked as static.The best fix for you is to write
static class PerkusjaTester {
.Then
main
is accessible.