В данном курсе студенты будут изучать разработку приложений с использованием языка программирования Java Platform, Standard Edition (Java SE) 17. Курс начинается с введения в язык программирования Java и с обзора принципов объектно-ориентированной (OO) разработки перед тем, как сосредоточиться на создании объектно-ориентированных приложений на Java. Курс предоставляет студентам краткий обзор синтаксиса языка Java, включая пакеты, классы, методы, переменные, условные операторы и управление потоками. Студенты узнают о роли наследования и интерфейсов в Java, о применении шаблонов разработки в спроектированных ими приложениях, о создании и обработке исключений и о том, как производить рефакторинг кода. Кроме того, этот курс раскрывает различные новые функции Java SE 17. Студенты также узнают о различных прикладных программных интерфейсах Java (API), сосредотачиваясь на API, широко используемых в реальных приложениях Java, таких как Наборы, Ввод/Вывод, Потоки и других служебных классах. Практические лабораторные упражнения представлены в течение курса, позволяя студентам исследовать язык Java и закрепляя изученные в ходе лекций понятия. В лабораторных работах студенты создают и отлаживают код Java и работу с API Java при использовании средств разработки Java, предоставленных Eclipse. Эти средства разработки включают инструменты, необходимые для написания и исполнения кода Java, интегрированный отладчик, инструменты рефакторинга и инструменты тестирования JUnit.
|
По окончании курса слушатели смогут:
- Описать основные принципы объектно-ориентированного программирования
- Использовать синтаксис Java для разработки Java приложений
- Использовать наследование и интерфейсы в приложениях Java
- Описать, как шаблоны разработки используются в проектировании приложений
- Проводить рефакторинг кода Java
- Описать и использовать некоторые из важных классов API и интерфейсов, доступных Java, включая: классы обертки для примитивных типов данных, коллекции, классы-утилиты, классы ввода-вывода, потоки, исключения
- Создавать и использовать JavaBeans
- Использовать средства разработки Java в Eclipser
- Выполнять отладку Java приложений
- Выполнять тестирование приложений Java, используя JUnit
|
Основные темы:
- Введение в язык программирования Java
- История развития и особенности Java
- Эволюция стандарта Java SE
- Модель выполнения Java: байт-код и виртуальная машина Java
- Типы программ и компонентов, создаваемых на Java
- Средства разработки приложений Java
- JRE и JDK: основные программы и утилиты
- Компиляция и запуск приложений из командной строки
- Использование jshell
- Разработка, компиляция и запуск приложений в IDE Eclipse
- Упражнение: Работа с инструментами Java разработки
- Объектно-ориентированное программирование
- ООП и его отличия от процедурного программирования
- Понятие объекта и класса
- Взаимодействие между объектами
- Принципы разработки в ООП: инкапсуляция и полиморфизм
- Введение в унифицированный язык моделирования UML
- Примитивные типы
- Типизация в Java
- Примитивные типы, литеральное представление их значений, размещение в памяти
- Точность при вычислениях с плавающей точкой, модификатор strictfp
- Unicode в Java
- Явные и неявные преобразования типов, риск потери точности
- Операции с примитивными типами: арифметические, логические, бинарные операторы
- Верхние и нижние переполнения при операциях, специальные значения типов с плавающей точкой
- Объявление и инициализация переменных и констант
- Комментарии
- Ссылочные типы
- Ссылочные типы в Java и особенности их сравнения
- Оператор new
- Массивы и операции с ними
- Классы-оболочки примитивных типов
- Строки и операции с ними
- Перечисления (enum) и операции с ними
- Управление потоком выполнения программы
- Операторы условных переходов (if, if-else, switch)
- Циклы (while, do-while, for, break, continue)
- Форма цикла for для итерируемых объектов
- Метки
- Оператор return
- Блоки и области видимости переменных
- Отладка
- Режим отладки в IDE Eclipse
- Точки останова, пошаговое выполнение, отслеживание значений переменных и выражений
- Упражнение: Отладка
- Создание классов
- Объявление классов в Java
- Объявление членов класса: поля и методы
- Модификаторы доступа: public, protected, private, по умолчанию
- Статические члены класса
- Абстрактные классы
- Инициализаторы: статические и экземпляра класса
- Перегрузка методов
- Объявление конструкторов, конструкторы по умолчанию, цепочки конструкторов
- Управление памятью в Java: сборщик мусора
- Вложенные классы
- Роль пакетов в Java и видимость классов
- Основные стандартные пакеты Java
- Упражнение: Создание классов
- Наследование
- Наследование полей и методов
- Иерархия классов
- Доступ к членам классов-родителей: this и super
- Вызов конструкторов и иерархия классов
- Роль абстрактных классов
- Полиморфизм через наследование: поиск вызываемого метода
- Рефакторинг с использование наследования: на примере шаблона «Стратегия»
- Упражнение: Наследование
- Интерфейсы
- Объявление интерфейсов в Java
- Реализация интерфейсов классами
- Методы интерфейсов по умолчанию
- Наследование интерфейсов: множественное наследование и конфликты наследования
- Полиморфизм через интерфейсы
- Упражнение: Интерфейсы
- Исключения и их обработка
- Объектно-ориентированная обработка нештатных ситуаций
- Исключения в Java и правила их обработки: Throwable, Error, Exception, RunTimeException
- Обработчики исключений: try-catch-finally
- Объявление и генерация исключений: throw
- Автоматическое закрытие ресурсов: try-with-resources
- Упражнение: Исключения и их обработка
- Ввод-вывод и сериализация
- Эволюция ввода/вывада в Java: io, nio, nio.2
- Потоки ввода/вывода: байтные и символьные
- Работа с файлами: File
- Каналы и буферы
- NIO.2: Path, Files, FileSystem
- Сериализация объектов в Java
- Роль поля serialVersiomUID
- Модификатор transient
- Упражнение: Ввод-вывод и сериализация
- Регулярные выражения
- Язык регулярных выражений Java
- Подготовка регулярных выражений
- Применение шаблонов к строкам
- Даты и время
- Представление дат и времени в Java
- Календари
- Моменты, промежутки, продолжительности
- Операции над датами и промежутками времени
- Обзор библиотеки утилит Java
|
Рекомендуемая литература:
Если бы каждый Java-разработчик прочитал эти книги, было бы гораздо меньше неработающего кода. 1. "Java. Эффективное программирование" — Джошуа Блох Эта книга содержит более 50 полезных правил и тонкостей, предлагает решение задач программирования, с которыми большинство разработчиков сталкиваются каждый день. Описывает приемы, которыми пользуются эксперты, создававшие платформу Java. А также показывает, что следует и не следует делать для получения понятного, надежного и эффективного кода. 2. "Философия Java" — Брюс Эккель В этой книге автор рассказывает об основных проблемах написания кода: в чем их суть и какой подход использует Java в их разрешении. Обсуждаемые в каждой главе черты языка неразрывно связаны с тем, как они используются для решения определенных задач. 3. "Java Concurrency in Practice" — Goetz B., Peierls T. Java SE 5 и 6 — огромный шаг для развития параллельных приложений с улучшением виртуальной машины Java для поддержки высокой производительности. В этой книге автор объясняет не только то, как это работает и как этим пользоваться, но и шаблоны проектирования. 4. "Паттерны проектирования" — Эрик Фримен, Элизабет Фримен Паттерны появились, потому что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ. В этой книге найденные решения воплощены в краткой и легко применимой на практике форме. 5. "Java Puzzlers" — Joshua Bloch Любой человек с практическими знаниями Java поймет головоломки из этой книги, но даже самый опытный посчитает их полезными. 6. "Изучаем Java" — Кэти Сиерра, Берт Бейтс Эта книга очень хорошо подходит для начинающих. В ее основу положен метод обучения на практике, а полезная информация сопровождается визуальным рядом. Все теория закрепляется интересными примерами и тестами. 7. "Java. Библиотека профессионала. Том 1. Основы." — Кей С.Хорстманн, Гари Корнелл "Java. Библиотека профессионала. Том 2. Расширенные средства программирования." — Кей С.Хорстманн, Гари Корнелл В этом надежном и полезном практическом руководстве описаны важные языковые средства и библиотеки, проиллюстрированные тщательно подобранными и проверенными на практике примерами. Приведенные примеры просты для понимания, практичны и послужат неплохой отправной точкой для написания собственного кода. 8. "Java в примерах" — Дэвид Флэнаган Эта книга содержит 164 законченных практических примера: свыше 17900 строк тщательно прокомментированного, профессионально написанного Java-кода, работающего с 20 различными программными интерфейсами, такими как: сервлеты, JSP, XML, Swing и Java 2D. 9. "Язык программирования Java SE 11" — Джеймс Гослинг, Билл Джой Книга в равной степени может служить как учебником, так и справочником по языку Java. А многочисленные упражнения позволят попрактиковаться в использовании этого самого популярного в настоящее время языка программирования. 10. "Структура данных и алгоритмы Java" — Роберт Лафоре Первая часть книги представляет собой введение в алгоритмизацию и структуры данных, а также содержит изложение основ объектно-ориентированного программирования. Следующие части посвящены различным алгоритмам и структурам данных, рассматриваемым от простого к сложному: сортировка, абстрактные типы данных, связанные списки, рекурсия, древовидные структуры данных, хеширование, пирамиды, графы.
|