Более подробное рассмотрение первого примера программы

Хотя программа Example. java достаточно коротка, с ней связано несколько важных особенностей, характерных для всех Java-программ. Давайте рассмотрим каждую часть этой программы более подробно. Программа начинается со следующих срок:

/* Это простая программа Java. Назовите этот файл "Example.java". */

Этот фрагмент кода — комментарий. Подобно большинству других языков программирования, Java позволяет вставлять примечания в исходный файл программы. Компилятор игнорирует содержимое комментариев. Эти комментарии служат описанием или пояснением действий программы для любого, кто просматривает исходный код. В данном случае комментарий описывает программу и напоминает, что исходный файл должен быть назван Example .java. Конечно, в реальных приложениях комментарии служат главным образом для пояснения работы отдельных частей программы или действий, выполняемых отдельной функцией.

В Java поддерживаются три стиля комментариев. Комментарий, приведенный в начале программы, называют многострочным комментарием. Этот тип комментария должен начинаться с символов / * и заканчиваться символами */. Весь текст, помещенный между этими двумя символами комментария, компилятором игнорируется. Как следует из его названия, многострочный комментарий может содержать несколько строк.

Следующая строка программы имеет такой вид:

class Example {

В этой строке ключевое слово class используется для объявления о том, что выполняется определение нового класса. Example — это идентификатор, являющийся именем класса. Все определение класса, в том числе его членов, будет размещаться между открывающей ({) и закрывающей (}) фигурными скобками. Пока мы не станем подробно останавливаться на рассмотрении особенностей реализации класса. Отметим только, что в среде Java все действия программы осуществляются внутри класса. В этом состоит одна из причин того, что все Java-программы (по крайней мере, частично) являются объектно-ориентированными.

Следующая строка программы — однострочный комментарий:

// Программа начинается с обращения к main{).

Это второй тип комментариев, поддерживаемый языком Java. Однострочный комментарий начинается с символов //и завершается концом строки. Как правило, программисты используют многострочные комментарии для вставки длинных примечаний, а однострочные комментарии — для помещения коротких, построчных описаний. Третий тип комментариев — комментарий документации — будет рассмотрен далее в этой главе в разделе "Комментарии".

Следующая строка кода выглядит так:

public static void main(String args[]) {

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

Ключевое слово public — спецификатор доступа, который позволяет программисту управлять видимостью членов класса. Когда члену класса предшествует ключевое слово public, этот член доступен коду, расположенному вне класса, в котором определен данный член. (Противоположное ему по действию ключевое слово — private, которое препятствует использованию члена класса кодом, определенным вне его класса.) В данном случае метод main() должен быть определен как public, поскольку при запуске программы он должен вызываться кодом, определенным вне его класса. Ключевое слово static позволяет вызывать метод main () без конкретизации экземпляра класса. Это необходимо потому, что метод main () вызывается виртуальной машиной Java до создания каких-либо объектов. Ключевое слово void просто сообщает компилятору, что метод main () не возвращает никаких значений. Как будет показано в дальнейшем, методы могут также возвращать значения. Не беспокойтесь, если все сказанное кажется несколько сложным. Все эти концепции подробно рассматриваются в последующих главах.

Как было отмечено, main() — метод, вызываемый при запуске Java-приложений. Необходимо помнить, что язык Java чувствителен к регистру символов. Следовательно, строка Main не эквивалентна строке main. Важно понимать, что компилятор Java будет выполнять компиляцию классов, не содержащих метод main(). Но программа запуска приложений (java) не имеет средств запуска таких классов. Поэтому, если бы вместо main мы ввели Main, компилятор все равно выполнил бы компиляцию программы. Однако программа запуска приложений j ava сообщила бы об ошибке, поскольку не смогла бы найти метод main (). Для передачи любой информации, необходимой методу, служат переменные, указываемые в скобках, которые следуют за именем метода. Эти переменные называют параметрами. Если для данного метода никакие параметры не требуются, следует указывать пустые скобки. Метод main () содержит только один параметр, но достаточно сложный. Параметр String args [ ] объявляет параметр args, который представляет собой массив экземпляров класса String. {Массивы — это коллекции аналогичных объектов.) Объекты типа String хранят символьные строки. В данном случае параметр args принимает любые аргументы командной строки, присутствующие во время выполнения программы. В данной программе эта информация не используется, но в других программах, рассмотренных позже, она будет применяться.

Последним символом строки является символ фигурной скобки ({). Он обозначает начало тела метода main (). Весь код, образующий метод, будет располагаться между открывающей и закрывающей фигурными скобками метода.

Еще один важный момент: метод main () служит всего лишь началом программы. Сложная программа может включать десятки классов, только один из которых должен содержать метод main (), чтобы выполнение было возможным. Аплеты — Java-программы, внедренные в Web-браузеры, вообще не используют метод main (), поскольку в них применяются другие средства запуска выполнения аплетов.

Следующая строка кода приведена ниже. Обратите внимание, что она помещена внутри метода main ():

System.out.println("Простая Java-программа.");

Эта строка выводит на экран строку текста "Простая Java-программа.", за которой следует новая строка. В действительности вывод выполняется встроенным методом println (). В данном случае метод println () отображает переданную ему строку. Как будет показано, этот метод можно применять для отображения также и других типов информации. Строка начинается с идентификатора System.out. Хотя он слишком сложен, чтобы его можно было подробно пояснить на данном этапе, если говорить вкратце, System — это предопределенный класс, который предоставляет доступ к системе, а out — выходной поток, связанный с консолью.

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

Обратите внимание, что оператор println () завершается символом точки с запятой. В Java все операторы заканчиваются этим символом. Причина отсутствия символа точки с запятой в конце остальных строк программы в том, что с технической точки зрения они не являются операторами. Первый символ } завершает метод main (), а последний — определение класса Example.