Ранее в статьях про то как работает Java мы говорили о том что Java класс и файл должны называться одинаково. Если это правило нарушается, то возникает ошибка компиляции.

/***** File name: Trial.java ******/
public class Geeks
{
   public static void main(String[] args) {
        System.out.println("Hello world");
   }
}

Результат компиляции:

javac Trial.java
Trial.java:9: error: class Geeks is public, should be
                    declared in a file named Geeks.java
public class Geeks
^
1 error 

Но этот миф может быть разрушен следующим образом:

/***** File name: Trial.java ******/
class Geeks
{
    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}

Теперь вывод будет Hello world.

Ограничение на название класса и файла справделиво если класс объявлен как public.

Схема работы программы:

Схема работы программы

Теперь этот .class файл может быть выполнен. В одном java файле можно описывать мносжество классов.

Но лучше соблюдать правила и следовать мифу, чтобы не было путаницы в коде.

/*** File name: Trial.java ***/
class ForGeeks
{
   public static void main(String[] args){
      System.out.println("For Geeks class");
   }
}
class GeeksTest
{
   public static void main(String[] args){
      System.out.println("Geeks Test class");
   }
}

После компиляции этого файла будет созданы два .class файла ForGeeks.class и GeeksTest.class. Каждый из этих классов содержит собственный метод main(), которые можно запустить по отдельности.

Представленный материал является переводом этой статьи