Иллюстрированный самоучитель по Java

       

Первая программа на Java


По давней традиции, восходящей к языку С, учебники по языкам программирования начинаются с программы "Hello, World!". He будем нарушать эту традицию. В листинге 1.1 эта программа в самом простом виде, записанная на языке Java.

Листинг 1.1.

Первая программа на языке Java;

class HelloWorld{

public static void main(String[] args){ 

System.out.println("Hello, XXI Century World!"); 

}

Вот и все, всего пять строчек! Но даже на этом простом примере можно заметить целый ряд существенных особенностей языка Java.

Всякая программа представляет собой один или несколько классов, в этом простейшем примере только один

класс

(class).



Начало класса отмечается служебным словом

class

, за которым следует имя класса, выбираемое произвольно, в данном случае

Helloworld

. Все, что содержится в классе, записывается в фигурных скобках и составляет

тело класса

(class body).

Все действия производятся с помощью методов обработки информации, коротко говорят просто

метод

(method). Это название употребляется в языке Java вместо названия "функция", применяемого в других языках.

Методы различаются по именам. Один из методов обязательно должен называться

main

, с него начинается выполнение программы. В нашей простейшей программе только один метод, а значит, имя ему

main

.

Как и положено функции, метод всегда выдает в результате (чаще говорят,

возвращает

(returns)) только одно значение, тип которого обязательно указывается перед именем метода. Метод может и не возвращать никакого значения, играя роль процедуры, как в нашем случае. Тогда вместо типа возвращаемого значения записывается слово

void

, как это и сделано в примере.

После имени метода в скобках, через запятую, перечисляются

аргументы

(arguments) -или

параметры

метода. Для каждого аргумента указывается его тип и, через пробел, имя. В примере только один аргумент, его тип — массив, состоящий из строк символов. Строка символов — это встроенный в Java API тип


string

, а квадратные скобки — признак массива. Имя массива может быть произвольным, в примере выбрано имя

args

.

Перед типом возвращаемого методом значения могут быть записаны

модификаторы

(modifiers). В примере их два: слово

public

означает, что этот метод доступен отовсюду; слово

static

обеспечивает возможность вызова метода

main ()

в самом начале выполнения программы. Модификаторы вообще необязательны, но для метода

main ()

они необходимы.





Замечание




В тексте этой книги после имени метода ставятся скобки, чтобы подчеркнуть, что это имя именно метода, а не простой переменной.

Все, что содержит метод,

тело метода

(method body), записывается в фигурных скобках.

Единственное действие, которое выполняет метод

main ()

в примере, заключается в вызове другого метода со сложным именем

System.out.println

и передаче ему на обработку одного аргумента, текстовой константы

"Hello, 2lth century world!"

. Текстовые константы записываются в кавычках, которые являются только ограничителями и не входят в состав текста.

Составное имя

System.out.println

означает, что в классе

System

, входящем в Java API, определяется переменная с именем

out

, содержащая экземпляры одного из классов Java API, класса

PrintStream

, в котором есть метод

println()

. Все это станет ясно позднее, а пока просто будем писать это длинное имя.

Действие метода

println ()

заключается в выводе своего аргумента в выходной поток, связанный обычно с выводом на экран текстового терминала, в окно

MS-DOS Prompt


или



Command Prompt


или

Xterm,


в зависимости от вашей системы. После вывода курсор переходит на начало следующей строки экрана, на что указывает окончание

ln

, слово println — сокращение слов print line. В составе Java API есть и метод

print ()

, оставляющий курсор в конце выведенной строки. Разумеется, это прямое влияние языка Pascal.

Сделаем сразу важное замечание. Язык Java различает строчные и прописные буквы, имена

main, Main, MAIN



различны с "точки зрения" компилятора Java. В примере важно писать

String, System

с заглавной буквы, a

main

с маленькой. Но внутри текстовой константы неважно, писать

Century

или

century

, компилятор вообще не "смотрит" на нее, разница будет видна только на экране.





Замечание




Язык Java различает прописные и строчные буквы.

Свои имена можно записывать как угодно, можно было бы дать классу имя

helloworid

или

helloworid

, но между Java-программистами заключено соглашение, называемое "Code Conventions for the Java Programming Language", хранящееся по адресу



http://java.sun.com/docs/codeconv/index.html






.



Вот несколько пунктов этого соглашения:

имена классов начинаются с прописной буквы; если имя содержит несколько слов, то каждое слово начинается с прописной буквы;

имена методов и переменных начинаются со строчной буквы; если имя содержит несколько слов, то каждое следующее слово начинается со строчной буквы;

имена констант записываются полностью прописными буквами; если имя состоит из нескольких слов, то между ними ставится знак подчеркивания.

Конечно, эти правила необязательны, хотя они и входят в JLS, п. 6.8, но сильно облегчают понимание кода и придают программе характерный для Java стиль.

Стиль определяют не только имена, но и размещение текста программы по строкам, например, расположение фигурных скобок: оставлять ли открывающую фигурную скобку в конце строки с заголовком класса или метода или переносить на следующую строку? Почему-то этот пустяшный вопрос вызывает ожесточенные споры, некоторые средства разработки, например JBuilder, даже предлагают выбрать определенный стиль расстановки фигурных скобок. Многие фирмы устанавливают свой, внутрифирменный стиль. В книге мы постараемся следовать стилю "Code Conventions" и в том, что касается разбиения текста программы на строки (компилятор же рассматривает всю программу как одну длинную строку, для него программа — это просто последовательность символов), и в том, что касается отступов (indent) в тексте.



Итак, программа написана в каком- либо текстовом редакторе, например, Notepad. Теперь ее надо сохранить в файле, имя которого совпадает с именем класса, содержащего метод

main ()

, и дать имени файла расширение Java. Это правило очень желательно выполнять. При этом система исполнения Java будет быстро находить метод

main()

для начала работы, просто отыскивая класс, совпадающий с именем файла.





Совет




Называйте файл с программой именем класса, содержащего метод

main ()

, соблюдая регистр букв.

В нашем примере, сохраним программу в файле с именем HelloWorld.java в текущем каталоге. Затем вызовем компилятор, передавая ему имя файла в качестве аргумента:

javac HelloWorld.java

Компилятор создаст файл с байт-кодами, даст ему имя

Helloworid.class

и запишет этот файл в текущий каталог.

Осталось вызвать интерпретатор, передав ему в качестве аргумента имя класса (а не файла):

Java HelloWorld

На экране появится:

Hello, 21st Century World!





Замечание




Не указывайте расширение class при вызове интерпретатора.

На рис. 1.1 показано, как все это выглядит в окне

Command Prompt


операционной системы MS Windows 2000.





Рис. 1.1.


Окно 

Command Prompt


При работе в интегрированной среде все эти действия вызываются выбором соответствующих пунктов меню или "горячими" клавишами — единых правил здесь нет.


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