Java для начинающих. Объектно-ориентированный подход
Книга «Объектно-ориентированное программирование в Java» - доступный ресурс для знакомства с одним из самых долговечных и стабильно популярных языков программирования в мире. Книга основана на учебном курсе, который преподают авторы; она начинается с основ и постепенно рассматривает все более сложные концепции. В книге вы научитесь работать с интегрированной средой разработки, позволяющей читателю сразу же применять усвоенные знания. Каждая глава основана на примерах из реальной практики и учебных сценариях, а в заключительных главах приведены кейсы, на которых читатель может опробовать изученный материал и скомбинировать несколько концепций.
Об авторах .............................................................................................................. 14
Благодарности ........................................................................................................... 15
Введение ................................................................................................................... 16
Для кого эта книга.................................................................................................17
Темы, освещаемые в издании.................................................................................17
Темы, не обсуждаемые в книге...............................................................................18
Виды обозначений..................................................................................................19
Исходный код.........................................................................................................20
Ошибки и опечатки................................................................................................21
p2p.wrox.com..........................................................................................................21
Как читать эту книгу...............................................................................................22
Остаемся на связи..................................................................................................23
Глава 1. Общее введение в программирование ................................................ 24
Процесс программирования....................................................................................25
Объектно-ориентированное программирование: предварительное знакомство.......29
Ошибки программирования....................................................................................30
Ошибки синтаксиса/компиляции......................................................................30
Ошибки времени выполнения..........................................................................30
Логические/семантические ошибки..................................................................31
Принципы тестирования программного обеспечения..............................................31
Сопровождение программного обеспечения...........................................................33
Адаптивное сопровождение.............................................................................33
Улучшающее сопровождение...........................................................................33
Корректирующее сопровождение.....................................................................33
Профилактическое сопровождение..................................................................33
Принципы структурного программирования............................................................34
Глава 2. Знакомство с Java ................................................................................... 35
Краткая история Java.............................................................................................36
Характеристики Java...............................................................................................37
Детальный разбор..................................................................................................38
Байт-код..........................................................................................................38
Java Runtime Environment (JRE)........................................................................40
Платформы Java...............................................................................................45
Приложения Java....................................................................................................45
Автономные приложения..................................................................................45
Апплеты Java....................................................................................................46
Сервлеты Java..................................................................................................47
Компоненты Java..............................................................................................47
Структура языка Java..............................................................................................48
Классы.............................................................................................................49
Идентификаторы..............................................................................................49
Ключевые слова...............................................................................................50
Переменные.....................................................................................................50
Методы............................................................................................................51
Комментарии....................................................................................................52
Соглашения об именовании.............................................................................55
Типы данных в Java................................................................................................55
Примитивный тип данных................................................................................56
Литералы.........................................................................................................57
Операторы.......................................................................................................58
Массивы...........................................................................................................63
Приведение типов............................................................................................66
Резюме...................................................................................................................69
Глава 3. Настройка среды разработки ................................................................ 70
Интегрированные среды разработки......................................................................71
Программирование в текстовых редакторах.....................................................72
Выбор IDE........................................................................................................76
Установка Eclipse на ваш компьютер......................................................................77
Загрузка и установка Eclipse.............................................................................78
Работа с Eclipse................................................................................................79
Глава 4. Знакомство с объектно-ориентированным программированием .... 92
Основные понятия объектно-ориентированного программирования.......................93
Классы и объекты в Java.........................................................................................95
Определение классов в Java.............................................................................95
Создание объектов.........................................................................................103
Хранение данных: переменные.............................................................................107
Переменные экземпляра................................................................................109
Переменные класса........................................................................................113
Неизменяемые переменные............................................................................115
Область видимости переменной.....................................................................121
Основные понятия объектно-ориентированного программирования.....................125
Методы экземпляров......................................................................................126
Методы класса...............................................................................................129
Конструкторы.................................................................................................130
Метод Main.....................................................................................................135
Передача аргумента метода...........................................................................144
Встроенные классы Java SE..................................................................................151
Классы в пакете java.lang...............................................................................152
Классы в пакетах java.io и java.nio .................................................................154
Классы в пакете java.math..............................................................................154
Классы в пакетах java.net, java.rmi, javax.rmi
и org.omg.CORBA............................................................................................154
Классы в пакетах java.awt и javax.swing.........................................................155
Классы в пакете java.util.................................................................................155
Другие классы и пользовательские библиотеки..............................................164
Глава 5. Управление выполнением программы .............................................. 165
Использование операторов и методов в командах сравнения...............................166
Сопоставление примитивных типов данных и операторов сравнения.............166
Сопоставление составных типов данных с методами сравнения.....................168
Понимание управления языком............................................................................171
Создание условных инструкций......................................................................172
Написание циклов for.....................................................................................175
Написание циклов while.................................................................................186
Сравнение циклов for и while.........................................................................194
Написание инструкций switch.........................................................................195
Сравнение условных инструкций и инструкций switch ...................................200
Обзор управляющих ключевых слов...............................................................201
Обзор управляющих конструкций...................................................................208
Глава 6. Обработка исключений и отладка ..................................................... 210
Распознавание типов ошибок...............................................................................210
Выявление синтаксических ошибок................................................................211
Выявление ошибок времени выполнения.......................................................215
Выявление логических ошибок.......................................................................216
Исключения..........................................................................................................220
Распространенные исключения......................................................................220
Выявление исключений..................................................................................228
Отладка приложений............................................................................................235
Использование отладчика..............................................................................236
Использование журналирующего API.............................................................240
Тестирование приложений...................................................................................252
Резюме.................................................................................................................262
Глава 7. Подробнее о концепциях объектно-ориентированного программирования ..263
Аннотации............................................................................................................264
Перегрузка методов.............................................................................................265
Ключевое слово this.............................................................................................267
Сокрытие информации.........................................................................................272
Модификаторы доступа..................................................................................273
Геттеры..........................................................................................................274
Сеттеры.........................................................................................................275
Наследование классов..........................................................................................284
Ключевое слово super....................................................................................285
Переопределение методов.............................................................................287
Полиморфизм.................................................................................................288
Суперкласс Object..........................................................................................290
Абстрактные классы и методы........................................................................291
Пакеты.................................................................................................................297
Интерфейсы.........................................................................................................298
Сборка мусора......................................................................................................306
Глава 8. Обработка ввода и вывода .................................................................. 308
Основные потоки ввода и вывода.........................................................................309
Ввод и вывод в Java.............................................................................................313
Потоки.................................................................................................................316
Потоки байтов................................................................................................317
Потоки символов............................................................................................324
Буферизованные потоки................................................................................325
Потоки данных и объектов.............................................................................327
Другие потоки................................................................................................330
Сканеры...............................................................................................................331
Ввод и вывод из командной строки.......................................................................333
Ввод и вывод из файлов.......................................................................................341
Файловый ввод и вывод в NIO2 Java..............................................................342
Ввод и вывод устаревших файлов..................................................................356
Резюме.................................................................................................................358
Глава 9. Работа с базами данных в Java ........................................................... 359
Основы реляционных баз данных.........................................................................361
Доступ к реляционным базам данных из Java.......................................................366
Java Database Connectivity (JDBC)...................................................................367
SQLJ...............................................................................................................374
Обеспечение сохраняемости объекта...................................................................377
Hibernate........................................................................................................379
Доступ к объектно-ориентированной базе данных из Java..............................395
Сравнение технологий доступа к базе данных Java..............................................398
Что дальше..........................................................................................................399
Глава 10. Доступ к веб-ресурсам ....................................................................... 401
Краткое введение в сети......................................................................................402
Веб-сервисы.........................................................................................................415
RPC и RMI......................................................................................................416
SOAP..............................................................................................................419
REST..............................................................................................................422
Доступ к веб-сервисам и источникам с помощью Java..........................................424
Доступ к сервисам SOAP.................................................................................424
Доступ к сервисам REST.................................................................................465
Анализ экранных данных................................................................................511
Создание собственных веб-сервисов с помощью Java...........................................519
Настройка HTTP-сервера................................................................................519
Предоставление REST-сервисов......................................................................522
Глава 11. Проектирование графических интерфейсов .................................. 524
Обзор основ GUI в Java........................................................................................525
Обзор встроенных GUI-библиотек..................................................................525
Сборка с помощью контейнеров и компонентов.............................................529
Взглянем на полную картину..........................................................................533
Сравнение менеджеров компоновки.....................................................................538
FlowLayout......................................................................................................538
BorderLayout...................................................................................................541
GridLayout......................................................................................................543
GridBagLayout.................................................................................................545
CardLayout......................................................................................................549
BoxLayout.......................................................................................................554
GroupLayout и SpringLayout.............................................................................558
Абсолютное размещение (без менеджера компоновки)..................................558
Основные сведения о событиях............................................................................561
Знакомство с событиями................................................................................561
Слушатели событий........................................................................................562
Потоки и Swing...............................................................................................580
Заключительные темы..........................................................................................591
Полезные приемы: разделяйте внешний вид и бизнес-логику........................591
Порисуем: определение пользовательского функционала для рисования.......592
Визуальные GUI-редакторы: облегчают жизнь?..............................................608
JavaFX: движемся вперед?..............................................................................613
Глава 12. Использование объектно-ориентированных паттернов ............... 624
Введение в паттерны............................................................................................625
Объектно-ориентированные паттерны..................................................................626
Порождающие паттерны................................................................................626
Структурные паттерны...................................................................................636
Поведенческие паттерны...............................................................................661
Полезные библиотеки...........................................................................................684
Apache Commons............................................................................................684
Google Guava..................................................................................................685
Trove..............................................................................................................685
Colt................................................................................................................686
Lombok...........................................................................................................686
OpenCSV.........................................................................................................686
Библиотеки HTML и JSON ..............................................................................687
Hibernate и другие совместимые с JPA библиотеки.........................................687
Joda-Time.......................................................................................................687
Библиотеки для создания диаграмм и графиков.............................................687
Библиотеки 3D-графических функций............................................................688
Библиотеки финансовых функций..................................................................688