В течение пяти дней под руководством опытного инструктора слушатели последовательно рассмотрят синтаксис языка программирования Java, основы объектно-ориентированного программирования с использованием Java, создание графического пользовательского интерфейса с помощью Swing API, механизмы обработки исключений, организации ввода и вывода, работу с потоками, а также создание сетевых приложений. Каждый модуль курса включает обсуждение теоретических вопросов, которое завершается выполнением лабораторной работы. Это позволяет студентам на собственном опыте оценить преимущества и недостатки технологии. Для выполнения лабораторных работ курса будет использоваться NetBeans IDE, что позволит студентам ознакомиться с этой замечательной средой разработки, научиться документировать свои проекты, выполнять рефакторинг, отладку и тестирование кода, разрабатывать приложения на платформе NetBeans. Также будут рассмотрены вопросы использования шаблонов проектирования, UML-проектирования, кодогенерации и антипаттернов.
По завершении тренинга студенты попробуют сдать небольшой практический тест и самостоятельно оценить степень усвоения материала курса и свою готовность к применению полученных знаний на практике.
Курс может считаться подготовительным к сдаче сертификационного теста Java SE 7 Programmer I (1Z0-803).
По окончании курса слушатели смогут:
- создавать объектно-ориентированные Java-приложения на основе принципов ООП, таких как инкапсуляция, наследование и полиморфизм;
- компилировать в байт-код и запускать Java-приложения на выполнение;
- использовать типы данных и выражения;
- применять механизмы обработки исключений;
- документировать свои приложения;
- выполнять рефакторинг существующего кода;
- отлаживать, тестировать и профилировать свои проекты;
- проектировать приложения с помощью UML-диаграмм и выполнять кодогенерацию и обратный инжиниринг;
- создавать графические Java-приложения с использованием соответствующих компонентов Swing API;
- реализовать ввод и вывод для работы с файловой системой;
- создавать многопоточные Java-приложения;
- использовать сокеты для организации взаимодействия в реальном времени по протоколам TCP/IP;
- разрабатывать приложения для платформы NetBeans.
Аудитория
Курс предназначен для программистов, уже имеющих опыт разработки с использованием других языков и технологий программирования, заинтересованных в изучении языка Java и, возможно, планирующих сертифицироваться на получение статуса Oracle Certified Professional, Java Programmer.
Для эффективного обучения на курсе, слушатели должны обладать следующими знаниями и навыками:
- иметь представление о принципах объектно-ориентированного программирования;
- уметь создавать и компилировать простейшие C/C++/C#-программы;
- курс «NT-Java1. Введение в язык программирования Java».
- Введение
- Обзор технологии Java. Преимущества и недостатки Java в сравнении с конкурирующими технологиями
- Структура простого Java-приложения
- Компиляция и запуск Java-приложения. IDE NetBeans. Основные возможности среды разработки
- Объектно-ориентированное программирование. Документирование программ
- Абстракция, инкапсуляция и пакетирование
- Повторное использования Java-кода
- Понятия класса, атрибутов, методов, конструкторов, пакетов
- Использование модификаторов доступа private и public
- Вызов методов объекта класса
- Использование онлайн-документации по Java API
- JavaDoc-комментарии. Генерация документации в NetBeans
- Идентификаторы, ключевые слова и типы
- Использование комментариев
- Правила формирования идентификаторов
- Ключевые слова языка Java
- Примитивные типы данных
- Числовые и текстовые типы
- Ссылочные типы
- BigInteger и BigDecimal
- Объявление переменных
- Создание объектов класса с использованием ключевого слова new
- Инициализация членов класса
- Выражения, управление выполнением программы
- Instance и локальные переменные
- Инициализация переменных
- Основные операторы языка Java
- Приведение типов при присваивании значений переменным
- Логические выражения, особенности их синтаксиса и применения
- Использование основных алгоритмических конструкций if, switch, for, while, do, ключевые слова break и continue
- Массивы
- Декларирование массивов
- Инициализация элементов массива
- Определение количества элементов массива
- Многомерные и зазубренные массивы
- Операции над массивами, копирование данных массива в другой массив
- Проектирование иерархии классов. Знакомство с UML
- Основные принципы ООП: инкапсуляция, наследование, полиморфизм
- Перегрузка и переопределение методов
- Использование модификаторов доступа protected и default (package-friendly)
- Использование конструкторов, создание нескольких конструкторов класса
- Процесс создания и инициализации объекта
- Знакомство с UML. Использование EasyUML для NetBeans
- Кодогенерация на основе диаграммы классов. Обратный инжиниринг
- Особенности создания классов
- Создание статических переменных, методов и инициализаторов
- Final-классы, методы и переменные
- Создание и использование перечислений
- Использование статического импорта
- Создание абстрактных классов и методов
- Создание и использование интерфейсов
- Рефакторинг. Типичные архитектурные решения и антипаттерны
- Понятие о рефакторинге
- Выполнение рефакторинга в NetBeans
- Паттерны и антипаттерны
- Типичные ошибки начинающих разработчиков
- Обработка ошибок и исключений. Отладка, тестирование и профилирование
- Обработка исключительных ситуаций
- Блок try…catch…finally
- Категории исключений
- Общие типы исключений
- Описание собственных типов исключений
- Отладка кода в среде NetBeans
- Понятие о тестировании ПО. Unit-тесты
- Написание и выполнение jUnit-тестов в NetBeans
- Профилирование проекта в NetBeans
- Коллекции и дженерики
- Понятие коллекции, особенности поведения и использования коллекций
- Интерфейс Map
- Использование generic-коллекций
- Использование типов в generic-классах
- Рефакторинг существующего кода
- Перебор всех элементов коллекции
- Основы ввода-вывода
- Работа с аргументами командной строки и свойствами системы
- Использование класса Properties
- Сериализация и десериализация объектов
- Работа с потоками ввода и вывода
- Работа с консолью и файловой системой
- Ввод данных с консоли
- Вывод на консоль
- Файлы и потоки ввода-вывода
- Создание графического интерфейса пользователя
- Обзор JFC и Swing
- Структура Swing API, Swing-пакеты
- Основные интерфейсные элементы: контейнеры, компоненты и менеджеры разметки
- Свойства контейнеров, компонентов и менеджеров разметки
- Описание однопоточного Swing-приложения
- Построение графического интерфейса пользователя с помощью Swing
- Понятие о JavaFX
- Обработка событий от интерфейсных элементов
- Типы событий и обработчиков
- Модель событий Java SE
- Поведение графического интерфейса, генерация событий
- Обработка событий
- Распараллеливание обработки в Swing-приложении, использование класса SwingWorker
- Тонкая настройка пользовательского интерфейса
- Создание меню и других типовых интерфейсных элементов
- Настройка свойств компонентов, шрифтов, цветов и других
- Многопоточность в Java
- Понятие потока
- Создание потоков
- Управление потоками и написание кроссплатформенного многопоточного кода
- Проблемы при работе нескольких потоков с общими данными
- Использование wait и notify для управления потоками
- Использование ключевого слова synchronized для защиты данных
- Работа с сетью
- Создания сетевых подключений
- Работа с TCP/IP
- Классы для реализации сервера и клиента (ServerSocket и Socket)
- Разработка приложений для платформы NetBeans
- Обзор платформы NetBeans
- Разработка подключаемых модулей
- Разработка клиентских приложений
- Примеры приложений на платформе NetBeans