Чтение онлайн

на главную - закладки

Жанры

Java: руководство для начинающих
Шрифт:

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

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

Как упоминалось выше, метод main вызывается в начале выполнения программы на Java. Любые данные, которые требуется передать этому методу, задаются с помощью переменных, указываемых в круглых скобках после имени метода. Эти переменные называются параметрами. Если для какого-нибудь метода параметры не предусмотрены, то после его имени указывается лишь пара круглых скобок. В данном случае для метода main под именем args задается единственный параметр String args [ ]. Это массив объектов типа String. (Массивы представляют собой наборы однотипных объектов.) В объектах типа String хранятся последовательности символов. В данном случае в массиве args методу main передаются в виде аргументов параметры, указываемые в командной строке при запуске программы. В анализируемой здесь программе данные, получаемые из командной строки, не используются, но в других примерах программ будет показано, каким образом эти данные обрабатываются.

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

Очередная анализируемая строка кода приведена ниже. Обратите внимание на то, что она содержится в методе main . System.out.println("Java drives the Web.");

В этой строке кода на экран сначала выводится символьная строка "Java drives the Web. " (Java приводит в действие веб), а затем происходит переход на новую строку. Вывод на экран осуществляется встроенным методом println . В данном случае метод println выводит на экран переданную ему символьную строку. Как будет показано далее, с помощью метода println можно выводить на экран не только символьные строки, но и данные других типов. Анализируемая строка кода начинается с имен System.out. В настоящий момент объяснить их назначение нелегко, поэтому достаточно будет сказать, что System — это предопределенный класс, предоставляющий доступ к системным ресурсам, a out — поток вывода на консоль. Таким образом, System, out — это объек^ инкапсулирующий вывод на консоль. Тот факт, что для определения консоли в Java используется объект, лишний раз свидетельствует об объектно-ориентированном характере этого языка.

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

Обратите внимание на то, что оператор, содержащий вызов метода println , оканчивается точкой с запятой. Этим символом завершаются все операторы в Java. В других строках кода точка с запятой отсутствует лишь потому, что они формально не являются операторами.

Первая закрывающая фигурная скобка завершает метод main , а вторая такая же скобка указывает на окончание определения класса Example.

И последнее замечание: в Java учитывается регистр символов. Забвение этого правила влечет за собой серьезные осложнения. Так, если вместо main вы случайно наберете Main, а вместо println — PrintLn, исходный код программы окажется некорректным. И хотя компилятор Java скомпилирует классы, не содержащие метод main , у него не окажется средств для их выполнения. Следовательно, если вы допустите ошибку в имени main, компилятор скомпилирует программу и не сообщит об ошибке. Но о ней вас уведомит интерпретатор, когда не сумеет обнаружить метод main . Обработка синтаксических ошибок

Введите текст рассмотренной выше программы, скомпилируйте и запустите ее (если вы не сделали этого раньше). Если у вас имеется некоторый опыт программирования, то вам, безусловно, известно, что никто не гарантирован от ошибок при наборе исходного кода программы, а также о том, насколько просто допустить такие ошибки. Если вы наберете исходный код программы неправильно, компилятор, пытаясь обработать этот код, выведет сообщение об ошибке. Компилятор Java следует формальным правилам, и поэтому строка в исходном коде, на которую он указывает, не всегда соответствует истинному местоположению источника ошибки. Допустим, в рассмотренной ранее программе вы забыли ввести открывающую фигурную скобку после метода main . В таком случае компилятор сообщит вам о следующих ошибках: Example.java:8: expected public static void ma'in (String args [ ]) Example.java:11: class, interface, or enum expected } ^

Очевидно, что первое сообщение не соответствует действительности: пропущена не точка с запятой, а фигурная скобка.

Таким образом, если ваша программа содержит синтаксические ошибки, не стоит без думно следовать рекомендациям компилятора. Сообщение об ошибке составляется по формальным правилам. Вам же нужно разобраться, каковы истинные причины ошибки. Желательно проанализировать строки кода программы, предшествующие строке, обозначенной компилятором. Иногда ошибку удается распознать лишь после анализа нескольких строк кода, следующих за той, в которой она была на самом деле обнаружена. Еще одна простая программа

Вероятно, наиболее широко употребительной конструкцией в любом языке програм¬ мирования является оператор присваивания значения переменной. Переменная — это именованная ячейка памяти, в которой можно хранить присваиваемое значение. В про¬ цессе выполнения программы значение переменной может изменяться. Это означает, что содержимое переменной не фиксировано. В приведенной ниже программе исполь¬ зуются две переменные — varl и var2. /* Продемонстрировать применение переменной. Присвоить исходному файлу имя Ехахпр1е2. java. */ class Example2 { public static void main(String args[]) { int varl; // Объявление переменной, int var2; // Объявление еще одной переменной. varl = 1024; // Присваивание значения 1024 переменной varl. System.out.println("varl contains " + varl); var2 = varl / 2; System.out.print("var2 contains varl / 2: "); System, out .printfln (var2) ; } }

Запустив эту программу на выполнение, вы получите следующий результат: varl contains 1024 var2 contains varl / 2: 512

В этой программе представлен ряд новых понятий. Сначала в операторе int varl; // Объявление переменной.

объявляется переменная varl целочисленного типа.

В Java каждая переменная должна быть объявлена перед ее использованием. При объявлении переменной задается ее тип, т.е. тип данных, которые могут в ней содержаться. В данном случае переменная varl может содержать целочисленные значения. Для этой цели при объявлении переменной перед ее именем указывается ключевое слово int. Таким образом, в приведенной выше строке кода объявляется переменная varl типа int.

В следующей строке кода объявляется вторая переменная var2: int var2; // Объявление еще одной переменной.

Как видите, в этой строке кода используется та же самая форма объявления переменной, что и в предыдущей. А отличается она только именем переменной.

В общем, для объявления переменной служит следующий оператор: тип имя_переменной;

где тип обозначает конкретный тип объявляемой переменной, а имя_переменной — ее наименование. Помимо int, в Java поддерживаются и другие типы данных.

Поделиться:
Популярные книги

В теле пацана 6

Павлов Игорь Васильевич
6. Великое плато Вита
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
В теле пацана 6

Неудержимый. Книга II

Боярский Андрей
2. Неудержимый
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Неудержимый. Книга II

Кодекс Охотника. Книга V

Винокуров Юрий
5. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.50
рейтинг книги
Кодекс Охотника. Книга V

Три `Д` для миллиардера. Свадебный салон

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
7.14
рейтинг книги
Три `Д` для миллиардера. Свадебный салон

Газлайтер. Том 2

Володин Григорий
2. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 2

Совок 9

Агарев Вадим
9. Совок
Фантастика:
попаданцы
альтернативная история
7.50
рейтинг книги
Совок 9

Бездомыш. Предземье

Рымин Андрей Олегович
3. К Вершине
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Бездомыш. Предземье

Охотник за головами

Вайс Александр
1. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Охотник за головами

Не грози Дубровскому!

Панарин Антон
1. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому!

Воин

Бубела Олег Николаевич
2. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.25
рейтинг книги
Воин

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле

Особое назначение

Тесленок Кирилл Геннадьевич
2. Гарем вне закона
Фантастика:
фэнтези
6.89
рейтинг книги
Особое назначение

Не кровный Брат

Безрукова Елена
Любовные романы:
эро литература
6.83
рейтинг книги
Не кровный Брат

Покоритель Звездных врат

Карелин Сергей Витальевич
1. Повелитель звездных врат
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Покоритель Звездных врат