Иллюстрированный самоучитель по Java
Метод
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);.