Оглавление Введение 9
Благодарности 10
Глава 1. Основы языка Java и объектно-ориентированного программирования 11
1.1. Java 11
Выводы 14
1.2. Объектно-ориентированное программирование (ООП) 15
Выводы 18
1.3. Язык UML 18
Выводы 21
1.4. Загрузка и установка Java и TextPad 22
Выводы 24
1.5. Практические советы 24
Выводы 27
Глава 2. Начало программирования 28
2.1. Пример первой программы 28
2.2. Структура кода и результат вывода программы на экран 30
2.3. Документация Java API 33
2.4. Создание и использование объектов 37
2.5. Ошибки 40
Глава 3. Типы данных, операторы и переменные 44
3.1. Типы данных, объявление переменных и инициализация 44
3.2. Присваивание и отношения между числовыми типами 47
3.3. Присваивание и простые арифметические операции 49
3.4. Класс Math 52
3.5. Класс String 55
3.6. Класс MyTerminalIO 60
Глава 4. Как написать и использовать коды для классов 62
4.1. Переменные экземпляра, конструкторы и методы 62
4.2. Копирование и использование ссылок на объект 71
4.3. Ссылка на null 75
Глава 5. Апплеты и графика 82
5.1. Web-страницы и просмотр апплетов 82
5.2. Информация о геометрических и графических классах 83
5.3. Пример простого апплета 86
5.4. Черчение и заполнение геометрических форм 89
5.5. Цвета 90
5.6. Текст 93
5.7. Размещение апплетов на Web-страницах 95
5.8. Web-документация Java 97
Глава 6. Оператор if — условное выполнение 102
6.1. Синтаксис оператора if и условия вычисления 102
6.2. Множественные альтернативы и вложенный оператор if 105
6.3. Логические операторы, сложные выражения и булевы переменные 108
6.4. Сравнение объектов 115
6.5. Последний пример, символьный тип и некоторые типичные ошибки 118
Глава 7. Циклы 123
7.1. Циклы while и do 123
7.2. Цикл for 126
7.3. Область действия 128
7.4. Примеры 131
7.5. Вложенные циклы 135
7.6. Графические примеры 137
Глава 8. Методы, параметры и переменные 147
8.1. Передача параметров простых типов 147
8.2. Передача объектных ссылок в качестве параметров 152
8.3. Методы доступа, модифицирующие методы и побочные эффекты 157
8.4. Статические методы 160
8.5. Статические переменные 162
8.6. Полная классификация переменных в Java 166
8.7. Еще о синтаксисе 170
Глава 9. Массивы, класс Vector и класс ArrayLists 173
9.1. Объявление и использование массивов 173
9.2. Копирование массивов, передача массивов в качестве параметров и возвращение массивов методами 178
9.3. Примеры массивов 181
9.4. Структура коллекций в языке Java 187
9.5. Синтаксис коллекций 189
9.6. Примеры коллекций 193
Глава 10. Файл ввода/вывода 199
10.1. Вывод на экран и чтение из командной строки 199
10.2. Символы и Unicode 202
10.3. Обработка исключений 207
10.4. Запись символов в файл 210
10.5. Чтение символов из файла 212
10.6. Запись строк в файл 217
10.7. Файл ввода/вывода с произвольным доступом 218
Глава 11. Рекурсия 222
11.1. Описание рекурсии 222
11.2. Составление и выполнение рекурсивного кода 225
11.3. Особенности рекурсии 230
11.4. Рекурсия и циклы, рекурсия с двумя параметрами 232
Глава 12. Подклассы и наследование 237
12.1. Что такое наследование? 237
12.2. Написание кода для подклассов 241
12.3. Доступ к переменным экземпляра и переопределение методов 245
12.4. Ключевое слово super, методы и конструкторы 249
12.5. Ссылки на классы и подклассы в программах и методах 252
Глава 13. Абстрактность, полиморфизм и интерфейсы 258
13.1. Абстрактность в конструировании классов 258
13.2. Полиморфизм и динамическая диспетчеризация 263
13.3. Множественное наследование и интерфейсы 268
Глава 14. Методы toString(), equals() и clone() 273
14.1. Метод toString() 273
14.2. Метод equals() 276
14.3. Клонирование 278
14.4. Реализация метода clone() 284
14.5. Важное использование клонирования 289
Глава 15. Проекты игровых программ 290
15.1. Исторический обзор 290
15.2. Wari 293
15.3. Togiz Kumalak 295
15.4. Варианты реализации 298
Глава 16. Простые схемы UML с помощью программы Visio 300
16.1. Схемы статической структуры для классов и объектов 300
16.2. Ассоциации, агрегации и композиции 304
16.3. Наследование, интерфейсы и внутренние классы 307
16.4. Схемы последовательностей 311
Глава 17. Контейнеры, рисование и диалоговые окна 313
17.1. Контейнеры и компоненты 313
17.2. Рисование 317
17.3. Диалоговые окна и строковый вывод на панель 320
Echo1 320
Echo2 322
Echo3 325
Глава 18. Внутренние классы, блоки прослушивания и классы-адаптеры 329
18.1. Внутренние классы, блоки прослушивания и интегрированные внутренние поля 329
Echo4 330
Echo5 332
Echo6 336
18.2. Панели, классы-адаптеры и анонимные внутренние классы 339
Echo7 339
Echo8 345
Глава 19. Объекты, реагирующие на щелчок мыши, апплеты и jar-файл 355
19.1. Объекты, реагирующие на щелчок мыши 355
ClickCup 355
ClickDot 360
ClickHand 364
19.2. Преобразование приложения в апплет и размещение его на Web-странице 367
19.3. Преобразование приложения в самовыполняющийся jar-файл 371
Глава 20
. Меню, множественные фреймы, сериализация и текстовые поля 373
20.1. Ввод с клавиатуры, меню и множественные фреймы 373
ClickKey 373
ClickMenu 375
ClickMany 379
20.2. Сериализация, выборщики файлов, текстовые поля и полосы прокрутки 381
ClickSave 381
ClickChooser 385
ClickTextScroll 387
Глава 21. Задание для итогового проекта 390
21.1. Регистры и память: общие сведения 390
21.2. Примеры программ 393
MiscButton1 393
MiscButton2 394
MiscButton3 394
MiscRegister 394
MiscText 396
MiscLabel 397
21.3. Фокус 397
MiscFocus 397
21.4. Новые примеры программ 404
MiscAction 404
MiscMulti 404
MiscMemory 405
MiscRegAndMem 406
21.5. Потоки 407
MiscThread 407
Глава 22. Компьютер с минимальным набором команд 412
22.1. Использование MISC 412
22.2. Структура MISC 416
22.3. Машинный класс 418
22.4. Машинные команды 420
Команда MOVE 421
Команда ADD 422
Команда SUB 422
Команда JUMP 423
22.5. Программы машинного языка 423
22.6. Машинная арифметика 426
22.7. Подробное описание проекта 430
Схема зависимостей 433
Приложение. Описание компакт-диска 435
Предметный указатель 443
8 Оглавление 7 Оглавление