Den offentlige type <<klassenavn>> skal defineres i sin egen filfejl i Eclipse
Hvis .java
fil indeholder topniveau (ikke indlejret) public
klasse, den har samme navn som den offentlige klasse. Så hvis du har klasse som public class A{...}
den skal placeres i A.java
fil. På grund af det kan vi ikke have to offentlige klasser i én .java
fil .
Hvis det ville være tilladt at have to offentlige klasser, og lad os sige bortset fra public A
klassefil ville også indeholde public class B{}
det ville kræve fra A.java
fil skal også være navngivet som B.java
men filer kan ikke have to (eller flere) navne (i hvert fald i alle systemer, hvor Java kan køres).
Så forudsat at din kode er placeret i StaticDemoShow.java
fil har du to muligheder:
-
Hvis du vil have andre klasser i samme fil, gør dem ikke-offentlige (manglende synlighedsmodifikator vil repræsentere default/package-private synlighed)
class StaticDemo { // It can no longer public static int a = 3; static int b = 4; static { System.out.println("Voila! Static block put into action"); } static void show() { System.out.println("a= " + a); System.out.println("b= " + b); } } public class StaticDemoShow { // Only one top level public class in same .java file public static void main() { StaticDemo.show(); } }
-
Flyt alle offentlige klasser til deres egne
.java
filer. Så i dit tilfælde skal du opdele det i to filer:-
StaticDemo.java
public class StaticDemo { // Note: same name as name of file static int a = 3; static int b = 4; static { System.out.println("Voila! Static block put into action"); } static void show() { System.out.println("a= " + a); System.out.println("b= " + b); } }
-
StaticDemoShow.java
public class StaticDemoShow { public static void main() { StaticDemo.show(); } }
-
Kan ikke have to offentlige klasser i samme fil
public class StaticDemo{
Skift til
class StaticDemo{
Java-regel:Én public
klasse i én fil.