Объектно-ориентированное программирование и язык Java

Цели и задачи дисциплины

В результате изучения дисциплины слушатели должны познакомиться с основами объектно-оринтированного программирования и языка Java.

В результате изучения дисциплины слушатели должны знать

уметь

Содержание разделов дисциплины

  1. Введение. Первоначальное назначение Java («апплеты»), современное использование. Особенности программирования на Java. Виртуальная машина, байт-код. Простота компиляции. Простота отладки. Кроссплатформенность. Сборка мусора. Язык + библиотека. JRE, JDK. Разные версии Java. Java для разных устройств. «Почти Jav'ы».
  2. Введение в объектно-ориентированное программирование. Развитие языков программирования. Объектно-ориентированное программирование как следующий (за процедурным программированием) шаг в структурировании программ. Классы. «Hello, World!» на java. Соответствие между именами классов и файлов. Компиляция и запуск программы.
  3. Синтаксис «внутри метода main». Oбъявление локальных переменных. Константы. Стандартные типы. Присваивание, арифметические действия. Полный список операторов. Массивы. new[]. if, switch, циклы. Строки, оператор сложения.
  4. Объекты. Классы и объекты. new. Указатели в Java. Еще один «Hello, World!» — с созданием объекта. Синтаксис вызова метода. Идея объектно-ориентированного программирования: объект в программе = объект в предметной области. Методы и данные в классе. Соглашения о стиле кода.
  5. Подробности. Сборка мусора. Конструкторы. Метод finalize(). Перегрузка (overloading). Права доступа. public и private. Статические члены класса. «Свойства не объекта, а типа объектов.» Статические (и нестатические) инициализаторы. this. null.
  6. Наследование. Наследование классов. protected. Иерархия классов. object. Массив как объект. Примитивные типы.
  7. Полиморфизм. Виртуальные методы. Таблица виртуальных функций. final.
  8. String. Класс String. Метод toString().
  9. Нарушение парадигмы объектно-ориентированного программирования. Явное приведение типов. instanceof. Нетипизированные коллекции. Обертки для примитивных типов.
  10. Опять наследование. Абстрактные методы. Абстрактные классы. Интерфейсы.
  11. Обработка исключений. Мотивировка. Класс RuntimeException. throw. Stacktrace. Примеры: NullPointerException, ArithmeticException, ClassCastException. try/catch. finally. Разделение на checked и unchecked. throws.
  12. Подробнее о структуре класса. Вложенные классы. Анонимные классы.
  13. Packages. package. import. права доступа package local.
  14. Инструменты для работы с Java-программами. jar, zip. CLASSPATH. javap.

Рекомендуемая литература