Java ACM JTF пакет

#java

#java

Вопрос:

У меня есть сомнения в приведенном ниже фрагменте кода. Я хотел знать, почему код компилируется и выполняется правильно, даже если метод main отсутствует?

 import acm.program.*;  

public class HelloConsole extends ConsoleProgram {  

   public void run() {  
      println("hello, world");  
   }    
}
  

Спасибо.

Ответ №1:

Это сделано по дизайну программных классов ACM. Смотрите javadocs:

Традиционный шаблон использования, связанный с пакетом acm.program, уводит студентов от императивного стиля public static void main к более педагогически оправданной структуре, в которой студенты всегда работают в контексте объекта.

В этом случае вы переопределяете методы init / run в отличие от написания метода main.

Ответ №2:

Потому что consoleprogram расширяет класс program, который содержит метод main.