К. Арнольд, Д. Гослинг - Язык программирования Java (1160779), страница 2
Текст из файла (страница 2)
Андерс Шнайдерман (R. Anders Schneidermann), Сьюзен Сим (SusanSim), Боб Спраул (Bob Sproull), Гай Стил (Guy Steele), Артур Ван Хофф (Arthur Van Hoff), Джим Уолдо (Jim Waldo), Грег Уилсон (Greg Wilson) и ЭннУолрат (Ann Wollrath) представили нам свои содержательные рецензии. Джефф Арнольд (Geoff Arnold), Том Карджилл (Tom Kargill), Крис Дэрк(Chris Darke), Пэт Финнеган (Pat Finnegan), Майк Джордан (Mike Jordan), Дуг Ли (Doug Lea), Рэндалл Мюррей (Randall Murray), Роджер Риггс (RogerRiggs), Джимми Торрес (Jimmy Torres), Артур Ван Хофф (Arthur Van Hoff) и Фрэнк Йеллин (Frank Yellin) предоставили полезные комментарии итехническую информацию.Алка Дешпанд (Alka Deshpande), Шерон Фланк (Sharon Flank), Нассим Фотухи (Nassim Fotouhi), доктор К.
Калаянасундарам (Dr. K.Kalayanasundaram), Патрик Мартин (Patrick Martin), Пол Романья (Paul Romagna), Сьюзен Снайдер (Susan Snyder) и Николь Янкелович (NicoleYankelovich) своими совместными усилиями сделали возможными пять слов на стр. , не относящихся к кодировке ISO-Latin-1.
Джим Арнольд (JimArnold) предоставил информацию о правильном написании, использовании и этимологии слов smoog и moorge. Эд Муни (Ed Mooney) помогподготовить документацию. Херб (Herb) и Джой Кайзер (Joy Kaiser) были нашими консультантами по хорватскому языку. Куки Каллахан (CookieCallahan), Роберт Пирс (Robert Pierce) и Рита Тавилла (Rita Tavilla) помогли сдвинуть проект с мертвой точки, когда он собирался остановитьсявсерьез и надолго.Благодарим Ким Полез (Kim Polese) за краткую формулировку причин, по которым язык Java важен как для пользователей, так и дляпрограммистов.В критические моменты нам помогали своими советами и поддержкой Сьюзен Уолдо (Susan Waldo), Боб Спраул (Bob Sproull), Джим Уолдо (JimWaldo) и Энн Уолрат (Ann Wollrath). Спасибо нашим семьям, которые не только дарили нас своей любовью, но и не дали нам зачахнуть за работой,за что мы им глубоко благодарны.Выражаем искреннюю признательность персоналу фирмы Peets Coffee and Tea, который снабжал нас лучшим кофе Java на всей планете.Любые ошибки или недочеты, оставшиеся в этой книге (несмотря на все усилия перечисленных выше лиц), лежат исключительно на совестиавторов.Содержание | ДалееГлава 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. ПеременныеСледующий пример выводит числа Фибоначчи — бесконечную последовательность, первые члены которой таковы:112358132134Ряд чисел Фибоначчи начинается с 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;// Изменение значения hilo = 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 или falsechar 16-разрядный символ в кодировке Unicode 1.1byte 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).1.3. КомментарииТекст на русском языке в нашей программе представляет собой комментарий.
В Java предусмотрены комментарии трех видов — все онивстречаются в нашем примере.Текст, следующий за символами // вплоть до конца строки, игнорируется компилятором; то же самое относится и к тексту, заключенному междусимволами /* и */.Комментарии позволяют добавлять описания и пояснения для тех программистов, которым в будущем придется разбираться в вашейпрограмме.