
- •Глава 2
- •Глава 2. Обзор языка Java 31_
- •Глава 2. Обзор языка Java
- •Глава 2. Обзор языка Java 37
- •Глава 2. Обзор языка Java 39
- •Глава 2. Обзор языка Java 41
- •Часть I. Язык Java
- •Глава 2. Обзор языка Java 43_
- •Глава 2. Обзор языка Java 45_
- •Глава 2. Обзор языка Java 47
- •Глава 2. Обзор языка Java 49_
- •Часть I. Язык Java
- •Глава 2. Обзор языка Java 57
- •Глава 3
- •Глава 3. Типы данных, переменные и массивы 53
- •Глава 3. Типы данных, переменные и массивы _ 55
- •Глава 3. Типы данных, переменные и массивы
- •Глава 3. Типы данных, переменные и массивы 59_
- •Глава 3. Типы данных, переменные и массивы 61_
- •Глава 3. Типы данных, переменные и массивы
- •Глава 3. Типы данных, переменные и массивы 65_
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 67_
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 69_
- •Глава 3. Типы данных, переменные и массивы 71_
- •Глава 3. Типы данных, переменные и массивы 73_
- •Глава 3. Типы данных, переменные и массивы
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы _ 77_ Эта программа генерирует следующий вывод:
- •Глава 3. Типы данных, переменные и массивы 79
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 81_
- •Глава 4
- •Глава 4. Операции 83
- •84 Часть I. Язык Java
- •Глава 4. Операции 85_
- •Глава 4. Операции 87_
- •88_ Часть I. Язык Java
- •Глава 4. Операции 89
- •Глава 4. Операции 91_
- •Глава 4. Операции 93_
- •Глава 4. Операции 95_
- •Глава 4. Операции 97_
- •Глава 4. Операции 99
- •Глава 4. Операции 101
- •Глава 4. Операции 103
- •104 Часть I, Язык Java
- •Глава 4. Операции 105
- •Глава 5
- •Глава 5, Управляющие операторы 107
- •Глава 5. Управляющие операторы 109
- •110 Часть I. Язык Java
- •Глава 5, Управляющие операторы 111
- •Глава 5. Управляющие операторы 113
- •Глава 5. Управляющие операторы
- •Глава 5. Управляющие операторы 117
- •118 Часть I. Язык Java
- •Глава 5. Управляющие операторы 119
- •Глава 5. Управляющие операторы 121
- •122 Часть I. Язык Java
- •Глава 5. Управляющие операторы 123
- •Глава 5. Управляющие операторы 125
- •Глава 5. Управляющие операторы 127
- •Глава 5. Управляющие операторы 129
- •Глава 5. Управляющие операторы
- •Глава 6
- •134 Часть I. Язык Java
- •Глава 6. Введение в классы 135
- •136 Часть I. Язык Java
- •Глава 6. Введение в классы _ 137
- •Глава 6. Введение в классы 139
- •Глава 6. Введение в классы
- •Глава 6. Введение в классы 143
- •Глава 6. Введение в классы 145
- •Глава 6. Введение в классы 147
- •Глава 6. Введение в классы 149
- •Глава 6. Введение в классы 151
- •154 Часть I. Язык Java
- •Глава 6. Введение в классы 155
- •Глава 6. Введение в классы 157
- •Глава 7
- •Глава 7. Методы и классы 159
- •Глава 7. Методы и классы . 161
- •Глава 7. Методы и классы • 163
- •164 Часть I. Язык Java
- •Глава 7. Методы и классы 165
- •Глава 7. Методы и классы 167
- •Глава 7. Методы и классы 169
- •Глава 7, Методы и классы 171-
- •Глава 7. Методы и классы 173
- •Глава 7. Методы и классы 775
- •Глава 7. Методы и классы 177
- •Глава 7. Методы и классы ' 179
- •Глава 7. Методы и классы 1_81_
- •Глава 7. Методы и классы 1_83
- •184 '• Часть I. Язык Java
- •Глава 7. Методы и классы . 185
- •Глава 7. Методы и классы 187
- •Глава 8
- •Глава 8. Наследование 191
- •Глава 8. Наследование 193
- •Глава 8, Наследование 195
- •Глава 8. Наследование 197
- •198 Часть I. Язык Java
- •Глава 8, Наследование 199
- •Глава 8. Наследование 201
- •202 Часть I. Язык Java
- •Глава 8. Наследование 203
- •Глава 8. Наследование 205
- •Глава 8. Наследование 207
- •Глава 8. Наследование 209
- •Глава 8. Наследование 211
- •Глава 8. Наследование 213
- •Глава 8. Наследование 215
- •Глава 8. Наследование 217
- •Глава 12
- •Глава 12. Ввод/вывод, апплеты и другие темы 303_
- •Глава 12. Ввод/вывод, апплеты и другие темы . 305
- •Глава 12. Ввод/вывод, алплеты и другие темы 307
- •Глава 12. Ввод/вывод, апплеты и другие темы 309
- •Глава 12. Ввод/вывод, апплеты и другие темы 311
- •Глава 12. Ввод/вывод, апплаты и другие темы 313
- •314 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 315
- •Глава 12. Ввод/вывод, апплеты и другие темы 317
- •Глава 12. Ввод/вывод, апплеты и другие темы 319
- •320 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 321
- •Глава 12. Ввод/вывод, апплеты и другие темы 323
- •324 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 325
- •326 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплегы и другие темы 327
Глава 3. Типы данных, переменные и массивы
Таблица 3.3 (окончание)
Escape-последовательность Описание
\f Перевод страницы
\t Символ табуляции (Tab)
\b Возврат на один символ (Backspace)
Строковые литералы
Строковые литералы в Java определяются так же, как в большинстве других языков — включением последовательности символов между парой двойных кавычек. Примеры строковых литералов:
"Hello World"
"two\nlines"
"\"'This is in quotes\""
Escape-последовательности и восьмеричные/шестнадцатеричные системы обозначений, которые были определены для символьных литералов, работают аналогичным образом и внутри строковых литералов. Обратите внима-ние на одну важную деталь: строковые литералы должны начинаться и заканчиваться на той же строке. Никакой escape-последовательности продолжения строки не существует, как в других языках.
В большинстве других языков, включая C/C++, строки реализованы как массивы символов. Однако в Java дело обстоит не так. Строки — фактически объектные типы. Как вы увидите позднее, вследствие того, что Java реализует строки как объекты, он включает обширные возможности обработки строк, которые являются мощными и удобными в пользовании.
Переменные
Переменная — базовая единица хранения в Java-программе. Переменная определена комбинацией идентификатора, типа, и необязательного инициа лизатора. Кроме того, все переменные имеют область, которая определяет их видимость, и время жизни. ,
Объявление переменной
В Java все переменные должны быть объявлены прежде, чем они могут быть использованы. Основная форма (формат) объявления переменной выглядит так:
type identifier [ = value] [ , identifier [ = value] . . . ] ;
64 Часть I. Язык Java
Здесь type — один из типов Java, имя класса или интерфейса. (Понятия "класс" и "интерфейс" обсуждаются позже в Части I этой книги.) identifier— это имя переменной. Можно инициализировать переменную, определяя знак равенства (=) и value (в виде литерала подходящего типа). Имейте в виду, что выражение инициализации должно привести к значению того же самого (или совместимого) типа, как и значение, которое определено для переменной. Чтобы объявлять несколько переменных указанного типа, используйте список, разделенный запятыми.
Несколько примеров объявлений переменных различных типов (обратите внимание, что некоторые включают выражения инициализации):
int а, Ь, с; // три int-переменных а, Ь и с
int d = 3, е, f = 5; // три int-переменных, d и f инициализируются
byte z = 22; // инициализирует z
double pi =3.14159; // аппроксимация ПИ
char x = 'x'; // переменная х имеет значение 'х'
Идентификаторы, которые вы выбираете, не имеют ничего встроенного в своих именах, что бы указывало на их тип. Многие читатели помнят, когда ФОРТРАН предопределял все идентификаторы буквами от I до N, чтобы те имели тип integer, в то время как все другие идентификаторы были real. Java позволяет любому должным образом оформленному идентификатору иметь любой объявленный тип.
Динамическая инициализация
Хотя предшествующие примеры использовали только константы в качестве инициализаторов, Java позволяет переменным быть инициализированными динамически, используя любое выражение, допустимое во время объявления переменной.
Вот, например, короткая программа, которая вычисляет длину гипотенузы прямоугольного треугольника при заданной длине двух его противоположных сторон:
// Демонстрирует динамическую инициализацию, class Dynlnit {
public static void main(String args[]) { double a = 3.0, b = 4.0;
// переменная с динамически инициализирована double с = Math.sqrt(a * а + b * b);
System.out.println("Гипотенуза равна " + с); } }