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


Содержание раздела