Java для всех
Java — один из самых популярных и востребованных языков в мире. Алексей Васильев — автор многочисленных компьютерных бестселлеров — познакомит вас со всем необходимым для эффективной работы с этим языком. Вы изучите базовые типы, управляющие инструкции, особенности описания классов и объектов в Java, создание интерфейсов, лямбда-выражения, обобщенные классы. Каждая глава содержит примеры кода, которые в свою очередь снабжены как построчными пояснениями, так и подробным разбором примера программы. Примеры, используемые в этой книге, пригодятся вам в дальнейшей работе с языком Java. Программирование — это не страшно! Даже если у вас нет никакого опыта, вы с легкостью освоите Java, воспользовавшись уникальной методикой Алексея Васильева, и перейдете на профессиональный уровень.
Вступление..............................................................................................................9
О книге и не только..................................................................................................9
Объектно-ориентированное программирование и Java.............................................9
Особенности языка Java.........................................................................................11
Java и другие языки программирования..................................................................12
Программное обеспечение.....................................................................................14
Особенности книги.................................................................................................16
Полезные ресурсы..................................................................................................17
Обратная связь.......................................................................................................18
Благодарности........................................................................................................19
От издательства.....................................................................................................19
Глава 1. Основы Java.................................................................................................20
Простые программы...............................................................................................20
Знакомство с переменными....................................................................................27
Базовые типы данных.............................................................................................31
Приведение типов..................................................................................................33
Основные операторы..............................................................................................35
Использование основных операторов.....................................................................42
Полет тела, брошенного под углом к горизонту................................................43
Вычисление скорости на маршруте...................................................................45
Орбита спутника...............................................................................................47
Комплексные числа...........................................................................................48
Прыгающий мячик.............................................................................................50
Решение тригонометрического уравнения.........................................................52
Кодирование символов......................................................................................54
Расчет параметров цепи....................................................................................56
Резюме...................................................................................................................58
Глава 2. Управляющие инструкции Java.....................................................................60
Условный оператор if..............................................................................................60
Оператор выбора switch.........................................................................................70
Оператор цикла for.................................................................................................75
Оператор цикла while.............................................................................................80
Оператор цикла do-while........................................................................................81
Использование управляющих инструкций...............................................................83
Вычисление экспоненты....................................................................................83
Числа Фибоначчи..............................................................................................84
Вычисление числа π..........................................................................................85
Метод последовательных итераций...................................................................89
Решение квадратного уравнения.......................................................................91
Полет в атмосфере............................................................................................94
Резюме.................................................................................................................100
Глава 3. Массивы.....................................................................................................102
Одномерные массивы...........................................................................................102
Двумерные и многомерные массивы.....................................................................106
Символьные и текстовые массивы........................................................................111
Присваивание и сравнение массивов....................................................................117
Использование массивов......................................................................................123
Кодирование и декодирование текста.............................................................123
Умножение векторов.......................................................................................124
Числа Фибоначчи............................................................................................126
Работа с полиномами......................................................................................127
Сортировка массива........................................................................................129
Транспонирование квадратной матрицы.........................................................131
Произведение квадратных матриц..................................................................133
Задача перколяции.........................................................................................134
Резюме.................................................................................................................140
Глава 4. Классы и объекты.......................................................................................142
Знакомство с ООП................................................................................................142
Создание классов и объектов...............................................................................147
Статические поля и методы..................................................................................152
Закрытые члены класса........................................................................................156
Ключевое слово this.............................................................................................158
Внутренние классы...............................................................................................160
Анонимные объекты.............................................................................................162
Работа с классами и объектами............................................................................163
Схема Бернулли..............................................................................................163
Математические функции................................................................................166
Динамический список из объектов..................................................................171
Работа с матрицами........................................................................................173
Резюме.................................................................................................................180
Глава 5. Методы и конструкторы..............................................................................182
Перегрузка методов.............................................................................................182
Конструктор.........................................................................................................187
Объект как аргумент и результат метода..............................................................191
Механизм передачи аргументов...........................................................................194
Применение методов на практике........................................................................196
Интерполяционный полином...........................................................................196
Геометрические фигуры..................................................................................201
Матричная экспонента....................................................................................205
Операции с векторами....................................................................................211
Операции с полиномами..................................................................................217
Бинарное дерево.............................................................................................224
Резюме.................................................................................................................229
Глава 6. Наследование.............................................................................................230
Знакомство с наследованием................................................................................230
Наследование и закрытые члены..........................................................................233
Пакеты и защищенные члены...............................................................................235
Конструкторы и наследование..............................................................................238
Переопределение методов...................................................................................241
Замещение полей при наследовании....................................................................247
Многоуровневое наследование.............................................................................249
Объектные переменные суперкласса....................................................................252
Абстрактные классы.............................................................................................256
Анонимные классы...............................................................................................258
Резюме.................................................................................................................266
Глава 7. Интерфейсы и лямбда-выражения..............................................................268
Знакомство с интерфейсами.................................................................................268
Интерфейсные переменные..................................................................................273
Расширение интерфейсов.....................................................................................277
Анонимный класс на основе интерфейса..............................................................279
Лямбда-выражения и функциональные интерфейсы.............................................284
Ссылки на методы................................................................................................291
Резюме.................................................................................................................298
Глава 8. Работа с текстом.........................................................................................300
Объекты класса String..........................................................................................301
Метод toString()....................................................................................................305
Базовые операции с текстом................................................................................307
Сравнение текстовых строк..................................................................................309
Поиск символов и подстрок в тексте.....................................................................311
Методы для работы с текстом...............................................................................313
Форматированный текст.......................................................................................316
Класс StringBuffer.................................................................................................320
Класс StringBuilder................................................................................................326
Обработка текста.................................................................................................328
Резюме.................................................................................................................332
Глава 9. Обработка исключений...............................................................................334
Исключительные ситуации...................................................................................334
Классы исключений..............................................................................................336
Пример обработки исключений............................................................................339
Использование объекта исключения.....................................................................341
Использование нескольких catch-блоков..............................................................343
Вложенные конструкции try-catch.........................................................................346
Генерирование исключений..................................................................................351
Методы и контролируемые исключения................................................................354
Создание классов исключений..............................................................................355
Резюме.................................................................................................................357
Глава 10. Многопоточное программирование...........................................................359
Создание дочернего потока..................................................................................360
Управление потоками...........................................................................................369
Фоновые потоки...................................................................................................372
Создание нескольких потоков...............................................................................373
Главный поток......................................................................................................376
Синхронизация потоков........................................................................................378
Резюме.................................................................................................................383
Глава 11. Обобщенные типы....................................................................................384
Обобщенные методы............................................................................................384
Перегрузка обобщенных методов.........................................................................393
Обобщенные классы.............................................................................................395
Обобщенные интерфейсы.....................................................................................400
Обобщенные классы и наследование....................................................................401
Ограничения на обобщенные параметры..............................................................403
Знакомство с коллекциями...................................................................................406
Списки..................................................................................................................408
Множества...........................................................................................................414
Резюме.................................................................................................................417
Глава 12. Программы с графическим интерфейсом..................................................419
Создание простого окна.......................................................................................420
Окно с кнопками и меткой....................................................................................425
Компоненты и события.........................................................................................433
Создание графика функции..................................................................................440
Калькулятор.........................................................................................................458
Резюме.................................................................................................................466
Глава 13. Немного о разном.....................................................................................468
Работа с файлами.................................................................................................468
Аргументы командной строки...............................................................................476
Методы с произвольным количеством аргументов................................................477
Цикл по коллекции...............................................................................................481
Рекурсия..............................................................................................................483
Перечисления.......................................................................................................487
Резюме.................................................................................................................495
Заключение. Итоги и перспективы..........................................................................497
Приложение. Программное обеспечение.................................................................498
Загрузка программного обеспечения....................................................................498
Использование среды IntelliJ IDEA........................................................................502