Кен Арнольд Джеймс Гослинг

Вид материалаДокументы

Содержание


Глава 1ПЕРВОЕ ЗНАКОМСТВО С JAVA
1.1. С самого начала
Hello, world
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   81

Глава 1
ПЕРВОЕ ЗНАКОМСТВО С JAVA


Посмотрите Европу! Десять стран за семнадцать дней!
Реклама в туристическом агентстве

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

1.1. С самого начала


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

Класс содержит в себе члены двух видов: поля и методы. Полями называются данные, принадлежащие либо самому классу, либо его объектам; значения полей определяют состояние объекта или класса. Методами называются последовательности операторов, выполняющих какие-либо действия с полями для изменения состояния объекта.

По сложившейся традиции первая программа на изучаемом языке программирования должна выводить строку Hello, world. Текст такой программы на Java выглядит следующим образом:

class HelloWorld {

public static void main(String[] args) {

System.out.println(“Hello, world”);

}

}


Воспользуйтесь своим любимым редактором и введите исходный текст программы в файл. Затем запустите компилятор Java, чтобы преобразовать исходный текст в байт-код Java, “машинный язык” виртуальной абстрактной машины Java. Набор текста программы и ее компиляция в разных системах могут производиться по-разному и потому здесь не описываются — за информацией следует обратиться к соответствующей документации. Если запустить программу, на экране появится:

Hello, world

Наше маленькое приложение на языке Java что-то делает — но, собственно, как это происходит?

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

Единственным параметром метода main является массив объектов String, которые представляют собой аргументы программы из командной строки, использованной для запуска. Массивы и строки, а также значение args для метода main рассматриваются ниже.

Метод main объявлен с ключевым словом void, поскольку он не возвращает никакого значения. В Java этот метод имеет особое значение; метод main класса, объявленный так, как показано выше, выполняется, если запустить класс как приложение. При запуске метод main может создавать объекты, вычислять значения выражений, вызывать другие методы и делать все то, что заложил в него программист.

В приведенном выше примере main содержит всего один оператор, вызывающий метод println объекта out класса System. Для вызова метода необходимо указать объект и название метода, разделив их точкой (.). Метод println объекта out выводит в стандартный выходной поток строку текста и символ перехода на новую строку.

Упражнение 1.1

Наберите, откомпилируйте и запустите программу HelloWorld на вашем компьютере.

Упражнение 1.2

Попробуйте изменить различные части программы HelloWorld и ознакомьтесь с полученными сообщениями об ошибках.

1.2. Переменные


Следующий пример выводит числа Фибоначчи — бесконечную последовательность, первые члены которой таковы:

1

1
2
3
5
8
13
21
34

Ряд чисел Фибоначчи начинается с 1 и 1, а каждый последующий его элемент представляет собой сумму двух предыдущих. Программа для печати чисел Фибоначчи несложна, но она демонстрирует объявление переменных, работу простейшего цикла и выполнение арифметических операций:

class Fibonacci {

/** Вывод чисел Фибоначчи < 50 */

public static void main(String[] args) {

int lo = 1;

int hi = 1;


System.out.println(lo);

while (hi < 50) {

System.out.println(hi);

hi = lo + hi; // Изменение значения hi

lo = hi — lo; /* Новое значение lo равно

старому hi, то есть сумме

за вычетом старого lo */

}

}

}


В этом примере объявляется класс Fibonacci, который, как и Hello World, содержит метод main. В первых строках метода main объявляются и инициализируются две переменные, hi и lo. Перед именем переменной должен быть указан ее тип. Переменные hi и lo относятся к типу int — то есть являются 32-разрядными целыми числами со знаком, лежащими в диапазоне от –232 до 232–1.

В языке Java имеется несколько встроенных, “примитивных” типов данных для работы с целыми, вещественными, логическими и символьными значениями. Java может непосредственно оперировать со значениями, относящимися к примитивным типам, — в отличие от объектов, определяемых программистом. Типы, принимаемые “по умолчанию”, в Java отсутствуют; тип каждой переменной должен быть указан в программе. В Java имеются следующие примитивные типы данных:

boolean одно из двух значений: true или false

char 16-разрядный символ в кодировке Unicode 1.1

byte 8-разрядное целое (со знаком)

short 16-разрядное целое (со знаком)

int 32-разрядное целое (со знаком)

long 64-разрядное целое (со знаком)

float 32-разрядное с плавающей точкой (IEEE 754-1985)

double 64-разрядное с плавающей точкой (IEEE 754-1985)

В программе для вывода чисел Фибоначчи переменным hi и lo было присвоено значение 1. Начальные значения переменных можно задавать при их объявлении с помощью оператора = (это называется инициализацией). Переменной, находящейся слева от оператора =, присваивается значение выражения справа от него. В нашей программе переменная hi содержит последнее число ряда, а lo — предыдущее число.

До инициализации переменная имеет неопределенное значение. Если вы попробуете воспользоваться переменной до того, как ей было присвоено значение, компилятор Java откажется компилировать программу до тех пор, пока ошибка не будет исправлена.

Оператор while в предыдущем примере демонстрирует один из вариантов циклов в Java. Программа вычисляет выражение, находящееся в скобках после while, — если оно истинно, то выполняется тело цикла, после чего выражение проверяется снова. Цикл while выполняется до тех пор, пока выражение не станет ложным. Если оно всегда остается истинным, программа будет работать бесконечно, пока какое-либо обстоятельство не приведет к выходу из цикла — скажем, встретится оператор break или возникнет исключение.

Условие, проверяемое в цикле while, является логическим выражением, принимающим значение true или false. Логическое выражение, приведенное в тексте программы, проверяет, не превысило ли текущее число ряда значение 50. Если большее число ряда (hi) меньше 50, то оно выводится, а программа вычисляет следующее число Фибоначчи. Если же оно больше или равно 50, то управление передается в строку программы, находящуюся после тела цикла while. В нашем примере такой строкой оказывается конец метода main, так что работа программы на этом завершается.

Обратите внимание на то, что в приведенном выше примере методу println передается целочисленный аргумент, тогда как в HelloWorld его аргументом была строка. Метод println является одним из многих методов, которые перегружаются (overloaded), чтобы их можно было вызывать с аргументами различных типов.

Упражнение 1.3

Выведите заголовок перед списком чисел Фибоначчи.

Упражнение 1.4

Напишите программу, которая генерирует другой числовой ряд, — например, таблицу квадратов (умножение выполняется с помощью оператора * — например, i * i).
/footer.php"; ?>