Monday, November 05, 2007

Семинар Keyintegrity "Основы Java"

В середине октября 2007 я с моими коллегами Павлом Чурсиным и Алексеем Солодовниковым провели многодневный обучающий семинар по теме "Основы Java" в ТатАСУНефть.

Семинары состояли из двух дней лекций, и одного дня лабораторных работ.

Некоторые вопросы, рассмотренные в рамках лекций:

  1. Введение в Java
    1. Историческая справка
    2. Платформы Java ME/SE/EE
    3. Версии платформы Java
    4. JRE/JDK и JVM
  2. HelloWorld
    1. Точка входа в приложение, аргументы командной строки, код возврата
    2. Из чего состоят, как компилируются и запускаются приложения Java
  3. Поддержка ООП в Java
    1. Классы в Java
      1. Атрибуты класса
        • Имя
        • Модификаторы класса
        • Поля
        • Методы
        • Конструктор
        • Инициализатор
      2. Вложенные, Анонимные и Абстрактные классы
    2. Наследование и полиморфизм
    3. Интерфейсы
    4. Статический контекст
  4. Пакеты
  5. JavaBean и POJO
  6. Синтаксические конструкции языка
    1. Основные конструкции
    2. Потоки выполнения
      1. Исключительные ситуации
      2. Иерархия исключительных ситуаций
    3. Аннотации
    4. Generics
  7. Collections API (java.util.*)
    1. Collections, List, Set, Queue
    2. Vector, Stack
    3. Map
  8. Многопоточность
    1. Thread/Runnable
    2. Concurrency API (java.util.concurrency.*)
  9. I/O Streaming API (java.io.*)
    1. Serializable
    2. Input/OutputStream и иерархия
  10. И др.
На третий день были запланированы две лабораторные работы:
  • потоковый ввод/вывод и Collections API
  • многопоточное приложение и ООП
Мы также подготовили методические указания для выполнения работ в Eclipse IDE (1,3 МБ). Там же можно найти текст заданий к лабораторным работам.

Лабораторная работа №1

Цель работы:

Ознакомиться со средой разработки Eclipse JDT. Закрепить навыки создания и отладки простых консольных приложений на Java. В этой работе используются:

  • стандартные пакеты для работы с потоковым вводом/выводом,
  • сериализация объектов,
  • разбор параметров командной строки,
  • Java Collections API,
  • определение простых классов (JavaBeans),
  • сортировка списка объектов из этих классов по заданным критериям.

Лабораторная работа №2

Цель работы:

В этой предполагается создание утилиты для работы с файловой системой. Основными особенностями являются:

  • Использование возможностей ООП в Java: работа с интерфейсами и абстрактными классами, перегрузка методов;
  • Использование рекурсии для работы с файловой системой;
  • Создание многопоточного приложения с разделением общих объектов и синхронизацией потоков.

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


Решения для лабораторных работ можно скачать здесь (15 КБ).

Отдельно хочется отметить BlueJ - отличная вещь для преподавания ООП и Java.