Предисловие
Глава 1. Введение в мир компьютеров, Интернет и Web
1.1. Введение
1.2. Что такое компьютер?
1.3. Устройство компьютера
1.4. Эволюция операционных систем
1.5. Вычисления персональные, распределенные
и вычисления на платформе клиент-сервер
1.6. Машинные языки, языки ассемблера и языки высокого уровня.
1.7. История языка C++
1.8. История языка Java
1.9. Библиотеки классов Java
1.10. Другие языки высокого уровня
1.11. Структурное программирование
1.12. Интернет и Всемирная паутина
1.13. Общее описание типичной среды программирования на Java . .
1.14. Общий обзор Java и этой книги
1.15. Размышления об объектах: введение в объектное
проектирование и унифицированный язык моделирования . . .
1.16. Введение в образцы проектирования
1.17. Обзор издания по главам
1.18. Дополнительный раздел. Обзор факультативного примера
объектно-ориентированного проектирования
с использованием языка UML
1-19. Дополнительный раздел. Обсуждение разделов,
посвященных образцам проектирования
Глава 2. Введение в приложения Java
2.1. Введение
2.2. Ваша первая программа на Java: вывод строки текста
2.2.1.Компиляция и выполнение вашей первой программы на Java .
2.3.Изменение вашей первой программы на Java
o 2.3.1. Вывод строки текста при помощи нескольких операторов ....
2.3.2.Вывод нескольких строк текста при помощи одного оператора .
2.4. Вывод текста в диалоговом окне
2.5. Следующее приложение на Java: сложение целых чисел . . .
2.6. Принятие решений: операции равенства и отношения
2.7. Дополнительный раздел.
Размышления об объектах: постановка задачи
IQBQ 3. Введение в апплеты Java
3.1. Введение
3.2. Примеры апплетов из Java 2 Software Development Kit ....

3.2.1. Апплет TicTacToe
3.2.2. Апплет DrawTest
3.2.3. Апплет Java2D
3.3.Простой аппдет Java: вывод текстовой строки
3.3.1. Компиляция и выполнение WelcomeApplet
3.4. Два простых апплета: вывод текстовых строк и прямых линий
3.5. Еще один пример апплета Java: сложение чисел
с плавающей точкой
3.6.Просмотр апплетов в браузере Web
3.6.1. Просмотр апплетов в браузере Netscape Navigator 6
3.6.2. Просмотр апплетов в других браузерах,
с помощью подключаемого модуля Java
3.7. Ресурсы Интернет и Всемирной паутины,
посвященные апплетам Java
3.8. Дополнительный раздел. Размышления об объектах:
определение классов в постановке задачи
пава 4. Управляющие структуры. Часть I
4.1. Введение
4.2. Алгоритмы
4.3. Псевдокод
4.4. Управляющие структуры
4.5. Структура выбора if
4.6. Структура выбора if/else
4.7. Структура повторения while
4.8. Разработка алгоритмов: пример 1
(повторение, управляемое счетчиком)
4.9.Нисходящая разработка алгоритмов
с пошаговым уточнением: пример 2
(повторение, управляемое контрольным значением)
4.10.Нисходящая разработка алгоритмов
с пошаговым уточнением: пример 3
(вложенные управляющие структуры)
4.11. Операции присваивания
4.12. Операции инкремента и декремента
4.13. Примитивные типы данных
4.14. Дополнительный раздел.
Размышления об объектах: определение атрибутов классов .
лава 5. Управляющие структуры. Часть II
5.1.Введение
.5.2.Структуры повторения, управляемые счетчиком
5.3. Структура повторения for
5.4. Примеры использования структуры for
5.5. Структура с множественным выбором switch
5.6. Структура повторения do/while
5.7. Операторы break и continue
5.8. Операторы break и continue с меткой
5.9. Логические операции
5.10. Обзор по структурному программированию
5.11. Дополнительный раздел. Размышления об объектах:
определение состояний объектов и действий
Глава 6. Методы
6.1. Введение
6.2. Программные модули в Java
6.3. Методы класса Math
6.4. Методы
6.5. Определения методов
6.6. Приведение типов аргументов
6.7. Пакеты Java API
6.8. Генерация случайных чисел
6.9. Пример: имитатор азартной игры
6.10. Продолжительность существования идентификаторов ....
6.11. Правила видимости
6.12. Рекурсия
6.13. Пример использования рекурсии: числа Фибоначчи
6.14. Сравнение рекурсивных и итерационных методов
6.15. Перегрузка методов
6.16. Методы класса JApplet
6.17. Дополнительный раздел.
Размышления об объектах: определение операций классов .
Глава 7. Массивы
7.1. Введение
7.2. Массивы
7.3. Объявление массивов и выделение памяти под массивы. . . .
7.4. Примеры использования массивов,
7.4.1.Выделение памяти для массива
и инициализация элементов массива
7.4.2. Использование списка инициализации для задания
начальных значений элементам массива
7.4.3. Вычисление значений, сохраняемых в каждом
из элементов массива
7.4.4. Суммирование элементов массива
7.4.5. Использование столбчатых диаграмм
для графического отображения данных массива
7.4.6. Использование элементов массива в качестве счетчиков
7.4.7. Использование массивов в анализе результатов обследования. . .

7.5. Ссылки и передача параметров в методы
7.6. Передача массивов в методы
7.7. Сортировка массивов
7.8. Поиск в массивах: последовательный поиск и двоичный поиск .

7.8.1. Последовательный поиск в массиве
7.8.2. Алгоритм двоичного поиска в отсортированном массиве

7.9. Многомерные массивы
7.10. Дополнительный раздел.
Размышления об объектах: взаимодействие между объектами .
Глава 8. Объектное программирование
8.1. Введение
8.2. Реализация абстрактного типа данных Time с помощью классов.
8.3. Область действия класса
8.4. Управление доступом к элементам класса
8.5. Создание пакетов
8.6. Инициализация объектов класса: конструкторы
8.7. Использование перегруженных конструкторов
8.8. Использование методов Set и Get
8.8.1. Выполнение апплета, использующего определяемые
программистом пакеты
8.9. Повторное использование программного обеспечения
8.10. Использование ключевого слова final
с переменными экземпляра класса
8.11. Композиция: использование в качестве переменных
экземпляра класса объектов других классов
8.12. Уровень доступа пакета
8.13. Использование ссылки this
8.14. Метод finalize
8.15. Статические элементы класса
8.16.Абстракция данных и инкапсуляция
8.16.1. Пример: абстрактный тип данных "очередь"
8.17.Дополнительный раздел. Размышления об объектах:
начинаем программировать классы для модели лифта
Глава 9. Объектно-ориентированное программирование
9.1. Введение
9.2. Суперклассы и подклассы
9.3. Защищенные элементы класса
9.4. Связь между объектами суперкласса и объектами подкласса . . .
9.5. Конструкторы и методы finalize в подклассах
9.6. Неявное преобразование объектов подкласса
в объекты суперкласса
9.7.Использование механизма наследования
при разработке программного обеспечения
9.8. Композиция и наследование
9.9. Комплексный пример: классы Point, Circle и Cylinder
9.10. Введение в полиморфизм
9.11. Описание типа объекта и оператор switch
9.12. Динамическое связывание методов
9.13. Методы и классы final
9.14. Абстрактные суперклассы и реализации классов
9.15. Примеры полиморфизма
9.16. Комплексный пример: система расчета заработной платы,
использующая полиморфизм
9.17. Новые классы и динамическое связывание
9.18. Комплексный пример: наследование интерфейса и реализации . . .
9.19. Комплексный пример: создание и использование интерфейсов . . .
9.20. Определение внутренних классов
9.21. Замечания по поводу определения внутренних классов
9.22. Классы-оболочки примитивных типов
9.23. Дополнительный раздел. Размышления об объектах:
внесение механизма наследования в модель лигЬтя .F"?"8
щ
9.24. Дополнительный раздел.
Обсуждение образцов проектирования:
порождающие, структурные и образцы поведения
9.24.1. Порождающие образцы проектирования
9.24.2. Структурные образцы проектирования
9.24.3. Поведенческие образцы проектирования
9.24.4. Заключение
9.24.5. Обзор ресурсов Интернет и Всемирной паутины
Глава 10. Строки и символы
10.1. Введение
10.2. Основные принципы символьных и строковых данных ....
10.3. Конструкторы класса String
10.4. Методы length, CharAt и getChars класса String
10.5. Сравнение строк
10.6. Метод hashCode класса String
10.7. Поиск символов и подстрок в строках
10.8. Извлечение подстрок из строки
10.9. Конкатенация строк
10.10. Другие методы класса String
10.11. Использование метода valueOf класса String
10.12. Метод intern класса String
10.13. Класс StringBuffer.\'
10.14. Конструкторы класса StringBuffer
10.15. Методы класса StringBuffer length, capacity,
setLength и ensureCapacity
10.16. Методы класса StringBuffer char At, setCharAt,
getChars и reverse
10.17. Методы append класса StringBuffer
10.18. Методы Insertion и Deletion класса StringBuffer
10.19. Примеры использования класса Character
10.20. Класс StringTokenizer
10.21. Моделирование тасования и раздачи карт
10.22. Дополнительный раздел.
Размышления об объектах: обработка событий
Глава 11. Графика и Java2D
11.1. Введение
11.2. Графический контекст и объекты класса Graphics
11.3. Управление цветом
11.4. Управление параметрами шрифта
11.5. Изображение линий, прямоугольников и овалов
11.6. Изображение дуг овалов
11.7. Изображение многоугольников и ломаных линий
11.8. Интерфейс Java2D API
11.9. Графические формы Java2D
11.10. Дополнительный раздел. Размышления об объектах:
разработка интерфейса с помощью UML
Глава 12. Компоненты графического интерфейса пользователя: часть 1
12.1. Введение
12.2. Обзор компонентов Swing
12.3. JLabel
12.4. Модель обработки событий
12.5. JTextField и JPasswordField
12.5.1. Как выполняется обработка событий
12.6. JButton
12.7. JCheckBox и JRadioButton . . .
12.8. JComboBox
12.9. JList
12.10. Списки с множественным выбором
12.11. Обработка событий мыши
12.12. Классы адаптеры
12.13. Обработка событий клавиатуры
12.14. Менеджеры расположения

12.14.1. FlowLayout
12.14.2. Border-Layout
12.14.3. GridLayout

12.15. Панели,. . .
12.16. Дополнительный раздел.
Размышления об объектах: диаграммы использования
Глава 13. Компоненты графического интерфейса пользователя: часть 2
13.1. Введение
13.2. JTextArea
13.3. Создание специализированного подкласса JPanel
13.4. Создание подкласса JPanel, который может
содержать объекты JPanel
13.5. JSlider
13.6. Классы окон
13.7. Создание программ, выполняющихся как апплеты
и как приложения
13.8. Использование меню и фреймов
13.9. Использование JPopupMenus
13.10. Настраиваемый программный интерфейс
13.11. Использование JDesktopPane и JInternalFrame
13.12. Менеджеры расположения
13.13. Менеджер расположения BoxLayout
13.14. Менеджер расположения CardLayout
13.15. Менеджер расположения GridBagLayout
13.16. Константы RELATIVE и REMAINDER
класса GridBagConstraints
13.17. Дополнительный раздел. Размышления об объектах:
образец проектирования объект-вид-контроллер
13.18. Дополнительный раздел.
Обсуждение образцов проектирования:
образцы, используемые в пакетах Java.awt и javax,swing. .
13.18.1. Порождающие образцы проектирования
13.18.2. Структурные образцы проектирования
13.18.3. Образцы проектирования поведения
13.18.4. Заключение