Глава 3 Введение в язык Java
Исходный файл на языке Java - это текстовый файл, содержащий в себе одно или несколько описаний классов. Транслятор Java предполагает,
Прежде всего, в этой главе мы напишем, оттранслируем, и запустим каноническую программу “Hello World”. После этого мы рассмотрим все существенные лексические элементы, воспринимаемые Java-транс
Hello World
Итак, вот ваша первая Java-программа
:class HelloWorld {
public static void main (String args []) {
System. out. println ("Hello World");
}
}
Для того, чтобы поработать с приведенными в книге примерами вам нужно получить по сети из Sun Microsystems и установить Java Developers Kit — пакет для разработки Java-приложений (
Язык Java требует, чтобы весь программный код был заключен внутри поименованных классов. Приведенный выше текст примера надо записать в файл HelloWorld.java. Обязательно проверьте соответствие
С:
\> javac HelloWorld.JavaТранслятор создаст файл HelloWorld.class с независимым от процессора байт-кодом нашего примера. Для того, чтобы исполнить полученный код, необходимо иметь среду времени выполнения языка Java (в
С:
> java HelloWorldHello World
Полезного сделано мало, однако мы убедились, что установленный Java-транслятор и среда времени выполнения работают.
Шаг за шагом
Конечно,
HelloWorld — это тривиальный пример. Однако даже такая простая программа новичку в языке <Строка 1
class HelloWorld {
В этой строке использовано зарезервированное слово
class. Оно говорит транслятору, что мы собираемся описать новый класс.Строка 2
public static void main (String args []) {
Такая, на первый взгляд, чрезмерно сложная строка примера является следствием важного требования, заложенного при разработке языка Java. Дело в том, что в
public
Разбивая эту строку на отдельные лексемы, мы сразу сталкиваемся с ключевым словом
public. Это — модификатор доступа, коstatic
Следующее ключевое слово —
static. С помощью этого слова объявляются методы и переменные класса, используемые для работы с клаvoid
У вас нередко будет возникать потребность в методах, которые возвращают значение того или иного типа: например,
int для целыхmain
Наконец, мы добрались до имени метода
main. Здесь нет ничего необычного, просто все существующие реализации Java-интерпретаторов, получив комаВсе параметры, которые нужно передать методу, указываются внутри пары круглых скобок в виде списка элементов, разделенных символами ";" (точка с запятой). Каждый элемент списка параметров состоит из разделенны
Элемент
String args[] объявляет параметр с именем args, который является массивом объектов — представителей клСтрока 3
System. out. prlntln("Hello World!");
В этой строке выполняется метод
println объекта out. Объект<Закрывающей фигурной скобкой в строке 4 заканчивается объявление метода
main, а такая же скобка в строке 5 завершает объявление клЛексические основы
Теперь, когда мы подробно рассмотрели минимальный Java-класс, давайте вернемся назад и рассмотрим общие аспекты синтаксиса этого языка. Программы на
Java —Пробелы
Java —
язык, который допускает произвольное форматирование текста программ. Для того, чтобы программа работала нормально, нет никакой необходимости выравнивать ее текстКомментарии
Хотя комментарии никак не влияют на исполняемый код программы,
при правильном использовании они оказываются весьма существенноа = 42; // если
42 - ответ, то каков же был вопрос?Для более подробных пояснений вы можете воспользоваться комментариями, размещенными на нескольких строках, начав текст комментариев символами /* и закончив символами */ При этом весь текст между этими парами с
/*
* Этот код несколько замысловат...
* Попробую объяснить:
* ….
*/
Третья, особая форма комментариев, предназначена для сервисной программы
javadoc, которая использует компоненты Java-трансл/**
* Этот класс умеет делать замечательные вещи. Советуем всякому, кто
* захочет написать еще более совершенный класс, взять его в качестве
* базового.
* @see Java. applet. Applet
* ©author Patrick Naughton
* @version 1. 2
*/
class CoolApplet extends Applet { /**
* У этого метода два параметра:
* @param
key - это имя параметра.* @param value
- это значение параметра с именем key.*/ void put (String key, Object value) {
Зарезервированные ключевые слова
Зарезервированные ключевые слова — это специальные идентификаторы, которые в языке
Java используются для того, чтобы идентифицТаблица 2
Зарезервированные слова Java
abstract |
boolean |
break |
byte |
byvalue |
case |
cast |
catch |
char |
class |
const |
continue |
default |
do |
double |
else |
extends |
false |
final |
finally |
float |
for |
future |
generic |
goto |
if |
implements |
import |
inner |
instanceof |
int |
interface |
long |
native |
new |
null |
operator |
outer |
package |
private |
protected |
public |
rest |
return |
short |
static |
super |
switch |
syncronized |
this |
throw |
throws |
transient |
true |
try |
var |
void |
volatile |
while |
Отметим, что слова
byvalue, cast, const, future, generic, goto, inner, operator, outer, rest, var зарезервированы вТаблица 3
Зарезервированные имена методов
Java
clone |
equals |
finalize |
getClass |
hashCode |
notify |
notifyAll |
toString |
wait |
Идентификаторы
Идентификаторы используются для именования классов, методов и переменных. В качестве идентификатора может использоваться любая последовательность строчных и прописных букв, цифр и символов
Литералы
Константы в
Java задаются их литеральным представлением. Целые числа, числа с плавающей точкой, логические значения, символы иЦелые литералы
Целые числа — это тип, используемый в обычных программах наиболее часто. Любое целочисленное значение, например, 1, 2, 3, 42 — это целый литерал. В данном примере приведены десятичные числа
Целые литералы являются значениями типа
int, которое в Java хранится в 32-битовом слове. Если вам требуется знЛитералы с плавающей точкой
Числа с плавающей точкой представляют десятичные значения, у которых есть дробная часть. Их можно записывать либо в обычном, либо экспоненциальном форматах. В обычном формате число состоит
Логические литералы
У логической переменной может быть лишь два значения —
true (истина) иСимвольные литералы
Символы в
Java — это индексы в таблице символов UNICODE. Они пр
Таблица 3.
2. Управляющие последовательности символов
Управляющая последовательность |
Описание |
\ddd |
Восьмеричный символ (ddd) |
\uxxxx |
Шестнадцатиричный символ UNICODE (xxxx) |
\' |
Апостроф |
\" |
Кавычка |
\\ |
Обратная косая черта |
\r |
Возврат каретки (carriage return) |
\n |
Перевод строки (line feed, new line) |
\f |
Перевод страницы (form feed) |
\t |
Горизонтальная табуляция (tab) |
\b |
Возврат на шаг (backspace) |
Строчные литералы
Строчные литералы в
Java выглядят точно также, как и во многих других языках — это произвольный текст, заключенный в пару двойОператоры
Оператор — это нечто, выполняющее некоторое действие над одним или двумя аргументами и выдающее результат. Синтаксически операторы чаще всего размещаются между идентификаторами и литералами
Таблица 3.
3. Операторы языка Java
+ |
+= |
- |
-= |
* |
*= |
/ |
/= |
| |
|= |
^ |
^= |
& |
&= |
% |
%= |
> |
>= |
< |
<= |
! |
!= |
++ |
-- |
>> |
>>= |
<< |
<<= |
>>> |
>>>= |
&& |
| | |
== |
= |
~ |
?: |
instanceof |
[ ] |
Разделители
Лишь несколько групп символов, которые могут появляться в синтаксически правильной Java-программе, все еще остались неназваннами. Это — простые разделители, которые влияют на внешний вид и функциональность
Символы |
Название |
Для чего применяются |
( ) |
круглые скобки |
Выделяют списки параметров в объявлении и вызове метода, также используются для задания приоритета операций в выражениях, выделения выражений в операторах управления выполнением программы, и в операторах приведения т |
{ } |
фигурные скобки |
Содержат значения автоматически инициализируемых массивов, также используются для ограничения блока кода в классах, методах и локальных областях видимости. |
[ ] |
квадратные скобки |
Используются в объявлениях массивов и при доступе к отдельным элементам массива. |
; |
точка с запятой |
Разделяет операторы. |
, |
запятая |
Разделяет идентификаторы в объявлениях переменных, также используется для связи операторов в заголовке цикла for. |
. |
точка |
Отделяет имена пакетов от имен подпакетов и классов, также используется для отделения имени переменной или метода от имени переменной. |
Переменные
Переменная — это основной элемент хранения информации в Java-программе. Переменная характеризуется комбинацией идентификатора, типа и области действия. В зависимости от того, где вы объявил
Объявление переменной
Основная форма объявления переменной такова:
тип идентификатор [ = значение] [, идентификатор [ = значение
7...];Тип — это либо один из встроенных типов, то есть,
byte, short, int, long, char, float, double, boolean, либо имя класса или ин
int a, b, с; |
Объявляет три целых переменных а, b, с. |
int d = 3, e, f = 5; |
Объявляет еще три целых переменных, инициализирует d и f. |
byte z = 22; |
Инициализирует z. |
double pi = 3. 14159; |
Объявляет число пи (не очень точное, но все таки пи). |
char x = 'x'; |
Переменная х получает значение 'х'. |
В приведенном ниже примере создаются три переменные, соответствующие сторонам прямоугольного треугольника, а затем
c помощьclass Variables {
public static void main (String args []) {
double a = 3;
double b = 4;
double c;
с
= Math.sqrt (a* a + b* b);System.out.println ("c = "+ c);
} }
Ваш первый шаг
Мы уже многого достигли: сначала написали небольшую программу на языке
Java и подробно рассмотрели, из чего она состоит (блоки