Java >> Java tutorial >  >> Tag >> public

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:

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


Java tag