Метод main()

Всякая программа, оформленная как приложение (application), должна содержать метод с именем main. Он может быть один на все приложение или содержаться в некоторых классах этого приложения, а может находиться и в каждом классе.

Метод main() записывается как обычный метод, может содержать любые описания и действия, но он обязательно должен быть открытым (public), статическим (static), не иметь возвращаемого значения (void). Его аргументом обязательно должен быть массив строк (string[]). По традиции этот массив называют args, хотя имя может быть любым.

Эти особенности возникают из-за того, что метод main() вызывается автоматически исполняющей системой Java в самом начале выполнения приложения. При вызове интерпретатора java указывается класс, где записан метод main(), с которого надо начать выполнение. Поскольку классов с методом main() может быть несколько, можно построить приложение с дополнительными точками входа, начиная выполнение приложения в разных ситуациях из различных классов.

Часто метод main() заносят в каждый класс с целью отладки. В этом случае в метод main() включают тесты для проверки работы всех методов класса.

При вызове интерпретатора java можно передать в метод main() несколько параметров, которые интерпретатор заносит в массив строк. Эти параметры перечисляются в строке вызова java через пробел сразу после имени класса. Если же параметр содержит пробелы, надо заключить его в кавычки. Кавычки не будут включены в параметр, это только ограничители.

Все это легко понять на примере листинга 2.5, в котором записана программа, просто выводящая параметры, передаваемые в метод main() при запуске.

Листинг 2.5. Передача параметров в метод main()

class Echo {

   public static void main(String[] args){ 

      for (int i = 0; i < args.length; i++)

         System.out.println("args[" + i +"]="+ args[i]); 

   } 

}

На рис. 2.4 показаны результаты работы этой программы с разными вариантами задания параметров.

Рис. 2.4. Вывод параметров  командной строки

Как видите, имя класса не входит в число параметров. Оно и так известно в методе main().

Знатокам C/C++

Поскольку в Java имя файла всегда совпадает с именем класса, содержащего метод main(), оно не заносится в args[0]. Вместо argc используется args. length. Доступ к переменным среды разрешен не всегда и осуществляется другим способом. Некоторые значения можно просмотреть так: System.getProperties().list(System.out);.

 

Сайт создан в системе uCoz