ОГЛАВЛЕНИЕ....4
Введение. Программирование на языке Java....10
Особенности языка Java....10
Программное обеспечение....12
Среда разработки NetBeans....19
Создание нового проекта....20
Компиляция и запуск программы на выполнение....23
Закрытие проекта....25
Открытие существующего проекта....26
О книге....27
Обратная связь с автором....28
Глава 1. Приступаем к программированию....29
Первая программа....29
Создание программы....29
Анализ программного кода....31
Общие замечания....35
Вариации на тему первой программы....36
Вывод в консольное окно....40
Окно с полем ввода....41
Создание окна с полем ввода....42
Анализ программного кода....43
Управление видом окна с полем ввода....44
Консольный ввод....46
Резюме....51
Глава 2. Базовые типы и основные операторы....53
Переменные....53
Базовые типы....53
Объявление и инициализация переменных....56
Считывание значения переменной....61
Литералы и управляющие символы....69
Приведение типов....70
Основные операторы....73
Арифметические операторы....73
Операторы сравнения....74
Логические операторы....75
Побитовые операторы....76
Тернарный оператор....78
Оператор присваивания....79
Сокращенные формы оператора присваивания....80
Резюме....80
Глава 3. Знакомство с классами и объектами....82
Классы и объекты....82
Описание класса с полями....83
Создание объекта....84
Использование объектов....86
Класс с методами....88
Методы и конструкторы....93
Перегрузка методов....93
Конструктор....99
Статические и закрытые члены класса....103
Статические поля и методы....104
Закрытые и открытые члены класса....107
Резюме....111
Глава 4. Управляющие инструкции....114
Условный оператор....114
Синтаксис условного оператора....114
Использование условного оператора....116
Вложенные условные операторы....124
Операторы цикла....133
Оператор цикла while....133
Оператор цикла do-while....140
Оператор цикла for....145
Сравнение операторов цикла....147
Оператор выбора....150
Резюме....155
Глава 5. Массивы....158
Одномерные массивы....158
Создание одномерного массива....158
Инициализация одномерного массива....165
Оператор цикла for по коллекции....172
Присваивание массивов....175
Двумерные массивы....178
Создание двумерного массива....179
Инициализация двумерного массива....183
Массив со строками разной длины....186
Массивы и методы....189
Резюме....194
Глава 6. Наследование....196
Реализация наследования....196
Создание подкласса....197
Конструктор подкласса....204
Наследование и закрытые члены....212
Наследование, пакеты и уровни доступа....215
Переопределение методов....221
Общие принципы переопределения методов....222
Вызов разных версий метода....224
Виртуальность методов и конструкторов....228
Перегрузка и переопределение методов....231
Метод toString()....233
Объект подкласса и переменная суперкласса....236
Резюме....240
Глава 7. Абстрактные классы и интерфейсы....242
Абстрактные классы и методы....242
Интерфейсы....250
Реализация интерфейса....251
Интерфейсные переменные....255
Методы с кодом по умолчанию....258
Расширение интерфейсов....263
Наследование классов и реализация интерфейсов....268
Резюме....271
Глава 8. Использование классов и объектов....273
Методы и объекты....273
Механизм передачи аргументов методам....273
Передача аргументом объекта....275
Объект как результат метода....280
Объекты и наследование....285
Фабрика объектов....285
Конструктор создания копии....288
Массивы и объекты....292
Массив как поле....293
Массив объектов....296
Цепочка объектов....299
Внутренние классы....304
Анонимные классы....308
Создание анонимного класса путем наследования абстрактного суперкласса....309
Создание анонимного класса через реализацию интерфейса....312
Резюме....315
Глава 9. Обобщенные типы данных....316
Знакомство с обобщенными классами....316
Общие принципы использования обобщенных классов....317
Пример создания обобщенного класса....318
Обобщенный класс с несколькими параметрами....321
Обобщенные методы....324
Создание статического обобщенного метода....324
Создание нестатического обобщенного метода....327
Обобщенные классы и наследование....329
Суперкласс на основе обобщенного класса....330
Ограничение наследования для обобщенного типа....333
Обобщенные интерфейсы....338
Создание обобщенного класса на основе интерфейса....338
Создание обычного класса на основе обобщенного интерфейса....341
Обобщенные подстановки....344
Знакомство с обобщенными подстановками....344
Обобщенные подстановки с ограничениями....348
Резюме....352
Глава 10. Лямбда-выражения....354
Знакомство с лямбда-выражениями....354
Синтаксис лямбда-выражения....354
Функциональные интерфейсы....356
Альтернативный подход....360
Несколько интерфейсов и ссылка на метод....363
Ссылка на метод и конструктор....366
Ссылка на метод объекта....366
Ссылка на нестатический метод класса....371
Ссылка на статический метод....374
Ссылка на конструктор....377
Ссылка на перегруженный метод....379
Использование лямбда-выражений....381
Передача лямбда-выражения аргументом методу....382
Лямбда-выражение и результат метода....386
Лямбда-выражение и поле объекта....390
Резюме....393
Глава 11. Обработка исключительных ситуаций....394
Перехват и обработка ошибок....394
Пример обработки исключения....394
Принципы обработки исключений....398
Вложенные try-catch блоки....407
Использование объекта исключения....413
Генерирование исключений....415
Контролируемые и неконтролируемые исключения....417
Создание пользовательских классов исключений....424
Резюме....427
Глава 12. Многопоточное программирование....429
Знакомство с потоками....429
Способы создания дочерних потоков....431
Явная реализация интерфейса Runnable....431
Создание потока с использованием анонимного класса....435
Создание потока с использованием лямбда-выражения....438
Наследование класса Thread....440
Работа с потоками....442
Главный поток....442
Методы для работы с потоками....444
Создание нескольких потоков....445
Создание демон-потока....450
Синхронизация потоков....455
Резюме....461
Глава 13. Приложения с графическим интерфейсом....463
Принципы создания приложений с интерфейсом....463
Создание окна....465
Пустое окно....465
Альтернативный способ создания окна....468
Окно с кнопкой....470
Явное использование объекта обработчика....470
Принципы обработки событий....475
Обработчик на основе анонимного класса....478
Обработчик на основе лямбда-выражения....481
Обработчик на основе объекта окна....485
Создание класса для кнопки....491
Резюме....495
Глава 14. Обработка событий....497
Классы компонентов и событий....497
Классы графических компонентов....497
Классы событий....500
Использование текстового поля....501
Считывание значения поля....501
Использование общего обработчика....507
Обработчик для поля....515
Классы-адаптеры....525
Основные классы-адаптеры....525
Использование классов-адаптеров....526
Резюме....531
Глава 15. Графические компоненты....532
Раскрывающийся список....532
Список выбора....542
Группа переключателей....547
Опции и другие элементы....553
Резюме....573
Глава 16. Меню и панель инструментов....574
Меню и панель инструментов....574
Использование меню....574
Панель инструментов....575
Менеджеры компоновки и текстовая панель....576
Менеджеры компоновки....576
Текстовая панель....577
Использование меню и панели инструментов....578
Постановка задачи....578
Анализ возможностей программы....579
Программный код примера....585
Анализ программного кода....595
Резюме....607
Глава 17. Апплеты....608
Знакомство с апплетами....608
Общие принципы реализации апплета....608
Добавление апплета в веб-документ....610
Программный код апплета....613
Компиляция файла....616
Настройки безопасности....622
Апплеты и обработка событий....623
Пример обработки событий в апплете....624
Передача апплету параметров....635
Апплет с элементами управления....646
Резюме....663
Глава 18. Файлы и аргументы командной строки....665
Аргументы командной строки....665
Работа с файлами....672
Получение информации о файле....673
Чтение из файла и запись в файл....679
Средства выбора файлов....689
Резюме....697
Заключение. Еще немного о Java....698
Предметный указатель....699
Полный спектр сведений о языке Java с примерами и разбором задач от автора учебников-бестселлеров по языкам программирования Алексея Васильева. С помощью этой книги освоить язык Java сможет каждый желающий - от новичка до специалиста.