Основы программирования на языке Java

Цель курса

 

Рассматривается технология написания Java-приложений с использованием JDK. Слушатели изучат конструкции и механизмы работы языка Java, основанные на парадигме объектно-ориентированного программирования. Изучается вопрос создания графического интерфейса пользователя (GUI) с использованием библиотеки Swing. Также рассматриваются основы написания многопоточных систем и работа со стеком протоколов TCP/IP.

В результате освоения курса слушатели будут:

Знать:

  • Основы технологии Java.
  • Типы данных, переменные и операторы языка Java
  • Основные понятия ООП, включая наследование, абстрактные классы и интерфейсы
  • Специальные типы данных, такие как строки (String) и массивы (Arrays)
  • Обобщенное программирование
  • Механизм пакетов и модификаторы доступа в Java
  • Технологию создания графического пользовательского интерфейса
  • Многопоточную Модель данных в Java
  • Организацию потоков ввода/вывода
  • Работу со стеком TCP/IP

Уметь:

Создавать Java приложения с графическим интерфейсом пользователя, способные работать в многопоточной среде и взаимодействовать с сервером с использованием сокетов.

Владеть:

Технологиями написания Java приложений в рамках StandardEdition.

 

Перечень разделов курса

 

  • Основы технологии Java. Понятия и термины. Краткая история Java. Преимущества и особенности Java. Понятия и термины. Комментарии в языке Java. Алфавит языка Java. Зарезервированные слова
  • Типы данных, переменные и операторы. Примитивные типы данных. Объявления переменных. Область действия и значения по умолчанию. Приведение типов. Операторы. Перечисления
  • Управление течением программы. Составные операторы. Условные выражения: оператор if-then. Условные выражения: оператор switch/case. Циклы: цикл с предусловием while…. Циклы: цикл с постусловием do… while. Циклы: цикл с фиксированным количеством итераций for. Циклы: цикл перебора коллекций типа foreach
  • Методы. Создание и использование метода. Возврат значения из метода. Передача параметров в метод. Перегрузка методов. Методы с переменным количеством параметров
  • Массивы. Определение массивов. Одномерные массивы в Java. Многомерные и иррегулярные массивы. Инициализация и управление массивами
  • Классы и объекты. Объектно-ориентированная концепция. Переменные класса и экземпляра класса. Объектные ссылки и сборка мусора
  • Наследование. Механизм наследования в Java. Перекрытие методов и позднее связывание. Методы класса Object
  • Конструкторы. Предназначение конструкторов. Использование конструкторов. Порядок работы конструкторов. Обратный вызов как пример использования конструкторов
  • Обобщенное программирование. Общие сведения о настраиваемых типах. Создание настраиваемого типа. Ограниченные типы и метасимвольные аргументы. Ограниченные типы и коллекции. Ограничения настраиваемых типов
  • Работа со строкам. Класс String и его особенности. Методы класса String. Сравнение классов String и StringBuffer
  • Абстрактные классы и интерфейсы. Абстрактные классы: постановка задачи. Решение задачи с помощью абстрактных классов. Интерфейсы: постановка задачи. Решение задачи с помощью интерфейсов
  • Пакеты и модификаторы доступа. Пакеты. Параметр CLASSPATH. Модификаторы доступа. Инкапсуляция
  • Графические компоненты SWING. AWT как предшественник SWING. Иерархия классов Swing. Графические компоненты SWING
  • Менеджеры размещения компонентов. Общие сведения о менеджерах расположения. Стандартные менеджеры расположения. Вспомогательные компоненты. Комбинирование менеджеров расположения
  • Графика в языке Java. Графический контекст и методы его работы. Определение цветов и шрифтов. Рисование на поверхности компонентов
  • Обработка событий в Java. Основы механизма обработки событий. Классы-обработчики. Примеры использования классов-обработчиков. Внутренние классы
  • Обработка исключительных ситуаций. Описание механизма обработки исключений. Способы обработки исключений. Диагностические утверждения
  • Многопоточное программирование. Многопоточная модель Java. Создание потоков в рамках JVM: Класс Thread и интерфейс Runnable. Методы класса Thread
  • Синхронизация потоков. Синхронизация: постановка задачи. Способы синхронизации потоков. Методы wait() и notify() и notifyAll() класса Object. Способы управления жизненным циклом потока
  • Потоки ввода-вывода. Иерархия потоковых классов. Чтение данных с консоли. Сериализация объектов
  • Работа со стеком TCP / IP. Сетевые классы Java. Примеры реализации сетевых приложений: клиент. Примеры реализации сетевых приложений: сервер. Примеры реализации сетевых приложений: многопоточный сервер
Преподаватель: Ирина Юрьевна Баженова