Java 8. Руководство для начинающих

Учебное пособие.

Герберт Шилдт "Java 8. Руководство для начинающих" Вильямс, 2015 год, 720 стр. (43,1 мб. pdf)

Представленное, 6-е издание учебника Герберта Шилдта "Java 8 руководство для начинающих", дополнено и отредактировано в соответствием с изменениями в выпусках Java Platform и Standard Edition 8 (Java SE 8). Учебное пособие даст возможность новичкам сразу же включиться в процесс изучения платформы Java.

Автор книги, всемирно известный разработчик и популяризатор ИТ-технологий, написавший множество книг по программированию, с самого начала погружает читателей в мир программирования, рассказывая, как создаются, компилируются и работают программы, созданные на языке Java 8.

Изучение языка начинается с объяснения объектно ориентированной модели платформы, без понимания которой изучение Java - просто обессмыслено. Далее объясняются ключевые слова, методы, классы, синтаксис и языковые конструкции, как основа Java. В заключение приводится материал по многопоточному программированию, лямбда-выражениям, библиотеке Swing и JavaFX, что более подойдет для продвинутого уровня программистов.
ISBN 978-5-8459-1955-7 (рус.)

Оглавление книги.

Глава 1. Основы Java
Истоки Java
Взаимосвязь между Java и языками С и С++
Взаимосвязь между Java и языком С#
Вклад Java в развитие Интернета
Jаvа-аплеты
Безопасность
Переносимость
Волшебный байт-код Java
Основные характеристики Java
Объектно-ориентированное программирование
Инкапсуляция
Полиморфизм
Наследование
Установка комплекта Java Development Кit
Первая программа на Java
Ввод исходного кода программ
Компиляция программы
Построчный анализ исходного кода первого примера программы
Обработка синтаксических ошибок
Еще одна простая программа
Другие типы данных
Два управляющих оператора
Оператор if
Цикл for
Создание блоков кода
Использование точки с запятой в коде программы
Стилевое оформление текста программ с помощью отступов
Ключевые слова Java
Идентификаторы в Java
Библиотеки классов Java

Глава 2. Введение в типы данных и операции над ними
Особая важность типов данных
Элементарные типы данных Java
Целочисленные типы данных
Типы данных с плавающей точкой
Символы
Логический тип данных
Литералы
Шестнадцатеричные, восьмеричные и двоичные литералы
Управляющие последовательности символов
Строковые литералы
Подробнее о переменных
Инициализация переменных
Динамическая инициализация
Область действия и время жизни переменных
Операции
Арифметические операции
Операции инкремента и декремента
Операции сравнения и логические операции
Укороченные логические операции
Операция присваивания
Составные операции присваивания
Преобразование типов при присваивании
Приведение несовместимых типов
Приоритеты операций
Выражения
Преобразование типов в выражениях
Пробелы и круглые скобки

Глава 3. Управляющие операторы
Ввод символов с клавиатуры
Условный оператор if
Вложенные условные операторы if
Многоступенчатая конструкция if-else-if
Оператор swi tch
Вложенные операторы switch
Цикл for
Некоторые разновидности цикла for
Пропуск отдельных частей в определении цикла for
Бесконечный цикл
Циклы без тела
Объявление управляющих переменных в цикле for
Расширенный цикл for
Цикл while
Цикл do-while
Применение оператора break для выхода из цикла
Оператор break в роли оператора goto
Применение оператора continue
Вложенные циклы

Глава 4. Введение в классы, объекты и методы
Основные сведения о классах
Общая форма определения класса
Определение класса
Порядок создания объектов
Переменные ссылочного типа и присваивание
Методы
Добавление метода в класс Vehicle
Возврат из метода
Возврат значения
Использование параметров
Добавление параметризированного метода в класс Vehicle
Конструкторы
Параметризированные конструкторы
Добавление конструктора в класс Vehicle
Еще раз об операторе new
Сборка мусора и методы завершения
Метод finalize ()
Ключевое слово this

Глава 5. Дополнительные сведения о типах данных и операциях
Массивы
Одномерные массивы
Многомерные массивы
Двумерные массивы
Нерегулярные массивы
Трехмерные, четырехмерные и многомерные массивы
Инициализация многомерных массивов
Аnьтернативный синтаксис объявления массивов
Присваивание ссылок на массивы
Применение переменной экземпляра length
Разновидность for-each цикла for
Циклическое обращение к элементам многомерных массивов
Использование расширенного цикла for
Символьные строки
Создание строк
Операции над символьными строками
Массивы строк
Неизменяемость строк
Использование строк для управления оператором switch
Использование аргументов командной строки
Поразрядные операции
Поразрядные операции И, ИЛИ, исключающее ИЛИ и НЕ
Операции сдвига
Поразрядные составные операции присваивания
Оператор?

Глава 6. Дополнительные сведения о методах и классах
Управление доступом к членам класса
Модификаторы доступа в Java
Передача объектов методам
Способы передачи аргументов методу
Возврат объектов
Перегрузка методов
Перегрузка конструкторов
Рекурсия
Применение ключевого слова static
Статические блоки
Вложенные и внутренние классы
Переменное число аргументов
Использование методов с переменным числом аргументов
Перегрузка методов с переменным числом аргументов
Переменное число аргументов и неопределенность

Глава 7. Наследование
Основы наследования
Наследование и доступ к членам класса
Конструкторы и наследование
Использование ключевого слова super для вызова конструктора суперкласса
Применение ключевого слова super для доступа к членам суперкласса
Создание многоуровневой иерархии классов
Очередность вызова конструкторов
Ссылки на суперкласс и объекты подклассов
Переопределение методов
Поддержка полиморфизма в переопределяемых методах
Для чего нужны переопределенные методы
Демонстрация механизма переопределения методов на примере класса TwoDShape
Использование абстрактных классов
Использование ключевого слова final
Предотвращение переопределения методов
Предотвращение наследования
Применение ключевого слова final к переменным экземrmяра
Класс Object

Глава 8. Пакеты и интерфейсы
Пакеты 290
Определение пакета 291
Поиск пакета и переменная среды CLASSPATH
Простой пример применения пакета
Пакеты и доступ к членам классов
Пример доступа к пакету
Защищенные члены классов
Импорт пакетов
Библиотечные классы Java, содержащиеся в пакетах
Интерфейсы
Реализация интерфейсов
Применение интерфейсных ссьшок
Переменные в интерфейсах
Наследование интерфейсов
Методы интерфейсов, используемые по умолчанию
Основные сведения о методах по умолчанию
Практический пример использования метода по умолчанию
Множественное наследование
Использование статических методов интерфейса
Последнние замечания относительно пакетов и интерфейсов

Глава 9. Обработка исключений
Иерархия исключений
Общее представление об обработке исключений
Использование ключевых слов try и catch
Простой пример обработки исключений
Необработанные исключений
Обработка исключений - изящный способ устранения программных ошибок
Множественные операторы catch
Перехват исключений, генерируемых подклассами
Вложенные блоки try
Генерирование исключений
Повторное генерирование исключений
Подробнее о классе ThrowaЫe
Использование ключевого слова finally
Использование ключевого слова throws
Новые средства обработки исключений, появившиеся в версии JDK 7
Встроенные классы исключений Java
Создание подклассов, производных от класса Exception

Глава 10. Ввод-вывод данных
Потоковая организация системы ввода-вывода Java
Байтовые и символьные потоки
Классы байтовых потоков
Классы символьных потоков
Встроенные потоки
Использование байтовых потоков
Консольный ввод
Запись консольного вывода
Чтение и запись файлов
с использованием байтовых потоков
Ввод данных из файла
Запись в файл
Автоматическое закрытие файлов
Чтение и запись двоичных данных
Файлы с произвольным доступом
Использование символьных потоков Java
Консольный ввод с использованием символьных потоков
Консольный вывод с использованием символьных потоков
Файловый ввод-вывод с использованием символьных потоков
Класс FileWri ter
Использование класса FileReader
Использование классов-оболочек для преобразования числовых строк

Глава 11. Мноrопоточное проrраммирование
Общее представление о мноrопоточной обработке
Класс Thread и интерфейс RunnaЫe
Создание потока
Несложные усовершенствования мноrопоточной программы
Создание нескольких потоков
Определение момента завершения потока
Приоритеты потоков
Синхронизация
Использование синхронизированных методов
Синхронизированные блоки
Организация взаимодействия потоков с помощью методов notify (), wait() иnotifyAll()
Пример применения методов wait () и notify ()
Приостановка, возобновление и остановка потоков

Глава 12. Перечисления, автоупаковка, статический импорт и аннотации
Перечисления
Основные сведения о перечислениях
Перечисления Java являются типами классов
Методы values () и valueOf ()
Конструкторы, методы, переменные экземпляра и перечисления
Два важных ограничения
Перечисления наследуются от класса Enum
Автоупаковка
Оболочки типов
Основные сведения об автоупаковке
Автоупаковка и методы
Автоупаковка и автораспаковка в выражениях
Предупреждение относительно использования автоупаковки и автораспаковки
Статический импорт
Аннотации (метаданные)

Глава 13. Обобщения
Основные сведения об обобщениях
Простой пример обобщений
Обобщения работают только с объектами
Различение обобщений по аргументам типа
Обобщенный класс с двумя параметрами типа
Общая форма обобщенного класса
Ограниченные типы
Использование шаблонов аргументов
Ограниченные шаблоны
Обобщенные методы
Обобщенные конструкторы
Обобщенные интерфейсы
Базовые типы и унаследованный код
Автоматическое определение аргументов типов компилятором
Очистка
Ошибки неоднозначности
Ограничения в отношении использования обобщений
Невозможность создания экземпляров параметров типа
Ограничения статических членов класса
Ограничения обобщенных массивов
Ограничения обобщенных исключений
Дальнейшее изучение обобщений

Глава 14. Лямбда-выражения и ссылки на методы
Введение в лямбда-выражения
Основные сведения о лямбда-выражениях
Функциональные интерфейсы
Применение лямбда-выражений
Блочные лямбда-выражения
Обобщенные функциональные интерфейсы
Лямбда-выражения и захват переменных
Генерация исключений в лямбда-выражениях
Ссылки на методы
Ссылки на статические методы
Ссылки на методы экземпляров
Ссылки на конструкторы
Предопределенные функциональные интерфейсы

Глава 15. Аплеты, события и друrие вопросы
Основные сведения об аплетах
Организация аплета и его основные элементы
Архитектура аплетов
Завершенный каркас аплета
Инициализация и прекращение работы аплета
Запрос на перерисовку окна аплета
Метод update (}
Использование окна состояния
Передача параметров аплету
Класс Applet
Обработка событий
Модель делегирования событий
События
Источники событий
Слушатели событий
Классы событий
Интерфейсы слушателей событий
Применение модели делегирования событий
Обработка событий мыши
Простой пример аплета, демонстрирующий обработку событий от мыши
Другие ключевые слова Java
Модификаторы transient и volatile
Оператор instanceof
Модификатор strictfp
Ключевое слово assert
Машинно-зависимые методы
Глава 16. Введение в Swing
Происхождение и философия Swing
Компоненты и контейнеры
Компоненты
Контейнеры
Панели контейнеров верхнего уровня
Менеджеры компоновки
Первая простая Swing-пporpaммa
Построчный анализ первой Swing-пporpaммы
Использование компонента JButton
Работа с компонентом JТextField
Создание флажков с помощью компонента JCheckBox
Класс Jlist
Применение анонимных внутренних классов для обработки событий
Создание аплета средствами Swing

Глава 17. Введение в JavaFX
Базовые понятия JavaFX
Пакеты JavaFX
Классы Stage и Scene
Узлы и графы сцены
Панели компоновки
Класс Application и жизненный цикл приложения
Запуск приложения JavaFX
Каркас приложения JavaFX
Компиляция и выполнение программы JavaFX
Поток выполнения приложения
Простой элемент управления JavaFX: компонент Label
Использование кнопок и событий
Основные сведения о событиях
Элемент управления Button
Демонстрация обработки событий кнопки
Три других элемента управления JavaFX
Компонент CheckBox
Компонент ListView
Компонент TextField
Введение в эффекты и преобразования
Эффекты
Преобразования
Демонстрация эффектов и преобразований
Что дальше

Приложение А. Ответы на вопросы и решения упражнений для самопроверки
Глава l. Основы Java
Глава 2. Введение в типы данных и операции над ними
Глава 3. Управляющие операторы
Глава 4. Введение в классы, объекты и методы
Глава 5. Дополнительные сведения о типах данных и операциях
Глава 6. Дополнительные сведения о методах и классах
Глава 7. Наследование
Глава 8. Пакеты и интерфейсы
Глава 9. Обработка исключений
Глава 10. Ввод-вывод данных
Глава l l. Многопоточное программирование
Глава 12. Перечисления, автоупаковка, статический импорт и аннотации
Глава 13. Обобщения
Глава 14. Лямбда-выражения и ссылки на методы
Глава 15. Аплеты, события и другие вопросы
Глава 16. Введение в Swing
Глава 17. Введение в JavaFX

Приложение Б. Применение документирующих комментариев в Java
Дескрипторы javadoc
Дескриптор @author
Дескриптор {@code}
Дескриптор @deprecated
Дескриптор { @docRoot}
Дескриптор @exception
Дескриптор {@inheritDoc}
Дескриптор {@link}
Дескриптор {@linkplain}
Дескриптор {@literal}
Дескриптор @param
Дескриптор @return
Дескриптор @see
Дескриптор @serial
Дескриптор @serialData
Дескриптор @serialField
Дескриптор @since
Дескриптор @throws
Дескриптор @value
Дескриптор @version
Общая форма документирующих комментариев
Результат, выводимый утилитой javadoc
Пример применения документирующих комментариев
Предметный указатель

 

Скачать книгу бесплатно43,1 мб. pdf