Об авторе 13
Введение 15
Как работать с этой книгой 15
Соглашения, используемые в книге 15
Что можно не читать 16
Несколько предположений 17
Структура книги 18
Часть I. Основы Java 18
Часть II. Создание программы на Java 18
Часть III. Объектно-ориентированное программирование 18
Часть IV. Передовые методики программирования 19
Часть V. Великолепные десятки 19
Часть VI. Приложения 19
Пиктограммы, используемые в книге 19
Что дальше 20
Ждем ваших отзывов! 20
Часть I. Основы Java 21
Глава 1. Знакомство с Java 23
Что можно делать с помощью Java 24
Зачем писать программы 25
Немного истории 25
Объектно-ориентированное программирование 28
Объектно-ориентированные языки 28
Объекты и классы 30
Преимущества объектно-ориентированного подхода 31
Наглядное представление классов и объектов 32
Что дальше 33
Глава 2. Разработка программного обеспечения 35
Быстрое начало 35
Что должно быть установлено на компьютере 37
Что такое компилятор 38
Что такое виртуальная машина Java 40
Процесс разработки 45
Интегрированная среда разработки 46
Глава 3. Базовые компоненты Java 49
Поговорим на языке Java 49
Грамматика и общие имена 50
Слова в программе Java 51
Ваша первая программа на Java 53
Как работает ваша первая программа 54
Классы 54
Методы 55
Главный метод программы 57
Как приказать компьютеру выполнить нужную операцию 58
Фигурные скобки 60
Не говорите "Без комментариев..." 62
Добавление комментариев в код 63
Не будьте слишком строги к старине Барри 66
Использование комментариев для экспериментов с кодом 66
Часть II. Создание программы на Java 69
Глава 4. Переменные и значения 71
Переменчивая переменная 71
Оператор присваивания 74
Типы значений и переменных 75
Отображение текста 77
Числа без десятичной точки 78
Инициализация при объявлении 79
Примитивные типы Java 80
Тип char 81
Тип boolean 82
Ссылочные типы 83
Объявление импорта 86
Создание новых значений с помощью операторов 87
Инициализировать можно раз, а присваивать - много раз 89
Операторы инкремента и декремента 89
Операторы присваивания 93
Глава 5. Управляющие инструкции 95
Принятие решения с помощью инструкции if 95
Угадайте число 96
Ввод текста с клавиатуры 96
Генерация случайных чисел 98
Инструкция if 98
Двойной знак равенства 100
Блоки 100
Отступы в инструкции if 101
Сломанная вилка (if без else) 101
Условия с операторами сравнения и логическими операторами 102
Сравнение чисел и символов 102
Сравнение объектов 103
Импортируем все за один раз 105
Логические операторы 106
Чем "нуль" отличается от "ничто" 108
Условия в скобках и скобки в условиях 109
Вложение инструкций if 111
Переключатель switch 113
Выбор варианта 113
Не забывайте вставлять break! 115
Строковый аргумент - новинка в Java 7 117
Глава 6. Циклы 119
Цикл while 119
Цикл for 122
Структура цикла for 124
Премьера хита "Эл под дождем" 125
Цикл do 126
Считывание одного символа с клавиатуры 129
Манипулирование файлами 130
Объявление переменной в блоке 130
Часть III. Объектно-ориентированное программирование 131
Глава 7. Классы и объекты 133
Определение класса 133
Открытый класс 135
Объявление переменных и создание объектов 135
Инициализация переменной 138
Одна программа - это много классов 139
Определение метода в классе 139
Счет, отображающий сам себя 140
Заголовок метода 141
Передача параметров методу и получение значения от метода 142
Передача значения в метод 144
Значение, возвращаемое методом 145
Как сделать, чтобы числа выглядели красиво 147
Модификаторы доступа 151
Правильный стиль программирования 152
Как сделать поле недоступным 154
Проверка правил с помощью методов доступа 156
Глава 8. Повторное использование кода 157
Определение класса 158
Класс, определяющий служащего 158
Правильное использование класса 159
Создание платежного чека 161
Работа с файлами (небольшое отступление) 162
Хранение данных в файле 162
Копирование и вставка кода 163
Чтение из файла 164
Куда подевался мой файл? 166
Добавление имен папок в имя файла 166
Построчное чтение 167
Наследование 169
Создание производного класса 171
Использование производных классов 174
Соответствие типов 175
Использование класса PartTimeEmployee 176
Переопределение существующих методов 177
Аннотации 179
Вызов методов базовых и производных классов 179
Глава 9. Конструкторы 181
Определение конструктора 181
Что такое температура 182
Что такое температурная шкала 182
Так что же такое температура? 183
Что можно сделать с температурой 185
Поиск нужного конструктора 186
Некоторые вещи никогда не изменяются 189
Конструктор базового класса в производном классе 190
Усовершенствованный класс температуры 190
Конструкторы производных классов 191
Использование усовершенствованного класса температуры 192
Конструктор, выполняемый по умолчанию 193
Конструктор может не только заполнять поля 194
Классы и методы Java API 196
Аннотация @SuppressWarnings 198
Часть IV. Передовые методики программирования 199
Глава 10. Правильное применение переменных и методов 201
Определение класса 201
Еще один способ сделать числа красивыми 202
Использование класса Player 203
Девять вызовов конструктора 205
Графический интерфейс пользователя 205
Отфутболим исключение другому методу 207
Статические поля и методы 207
Зачем столько статики 209
Статическая инициализация 210
Отображение общей статистики команды 210
Статический импорт 212
Осторожно, статика! 213
Поэкспериментируем с переменными 214
Переменная на своем месте 215
Переменные в разных местах 217
Передача параметров 219
Передача по значению 219
Возвращение результата 221
Передача по ссылке 221
Возвращение объекта из метода 223
Эпилог 224
Глава 11. Массивы и коллекции 225
Как расположить предметы в ряд 225
Создание массива в два этапа 227
Сохранение значений 228
Табулостопы и другие специальные символы 230
Инициализация массива 230
Расширенный цикл for 231
Поиск 233
Массивы объектов 236
Использование класса Room 237
Еще один способ украшения чисел 240
Тернарный условный оператор 241
Аргументы командной строки 241
Использование аргументов командной строки в коде 242
Проверка количества аргументов командной строки 244
Коллекции 245
Классы коллекций 246
Класс ArrayList 247
Использование обобщенных типов 250
Проверка, есть ли еще данные 250
Глава 12. Как сохранить хорошую мину при плохой игре 253
Обработка исключений 254
Параметр блока catch 258
Типы исключений 259
Кто должен перехватить исключение 261
Блок catch с несколькими типами исключений 267
Не будем чрезмерно осторожничать 267
Восстановление работы программы после исключения 268
Наши друзья - хорошие исключения 269
Обработайте исключение или передайте его дальше 270
Блок finally 274
Закрытие файлов 276
Как закрыть файл 276
Ресурсы в заголовке блока try 276
Глава 13. Область видимости 279
Модификаторы доступа к членам классов 280
Классы, доступ и части программы 280
Классы и члены классов 281
Правила доступа к членам класса 281
Пример с рисунком во фрейме 283
Структура папок 285
Создание фрейма 286
Как изменить программу, не изменяя классы 287
Доступ, установленный по умолчанию 289
Как проникнуть в пакет 292
Защищенный доступ 292
Включение не производного класса в тот же пакет 294
Модификаторы доступа к классам 295
Открытые классы 296
Не открытые классы 296
Глава 14. Реагирование на события клавиатуры и мыши 299
Реагирование на щелчок мышью 299
События и обработка событий 301
Интерфейсы Java 302
Потоки 303
Ключевое слово this 304
Тело метода actionPerformed() 305
Идентификатор версии 305
Реагирование на другие события 306
Внутренние классы 311
Глава 15. Аплеты 315
Пример простого аплета 315
Выполнение аплета 316
Открытый класс 317
Классы Java API 317
Анимированный аплет 318
Методы, используемые в аплете 319
Содержимое методов аплета 320
Реагирование на события в аплете 322
Глава 16. Соединение с базой данных 325
JDBC и Java DB 325
Создание записей базы данных 326
Использование команд SQL 328
Подключение и отключение базы данных 328
Извлечение данных 330
Часть V. Великолепные десятки 333
Глава 17. Десять способов избежать ошибок 335
Правильное использование регистра букв 335
Выход из блока switch 336
Сравнение двух значений 336
Добавление элемента в графический интерфейс 336
Добавление приемников событий 337
Определение конструкторов 337
Исправление нестатических ссылок 337
Соблюдение границ массива 337
Указатели на null 338
Помогите виртуальной машине Java найти классы 338
Глава 18. Десять сайтов, посвященных Java 341
Веб-сайты этой книги 341
Сайты Java 341
Новости, обзоры, примеры кодов 342
Работа 342
Сайты для каждого 342
Часть VI. Приложения 343
Приложение А. Установка интегрированной среды разработки 345
Загрузка и установка JDK 345
Загрузка и установка Eclipse 349
Конфигурирование Eclipse 351
Приложение Б. Использование Eclipse 353
Работа с примерами книги 353
Создание собственного проекта 355
Предметный указатель 359