Объектно-ориентированное программирование и язык Java
Цели и задачи дисциплины
В результате изучения дисциплины слушатели должны познакомиться с основами объектно-оринтированного программирования и языка Java.
В результате изучения дисциплины слушатели должны знать
- основные понятия объектно-ориентированного программирования,
- их реализацию в языке Java,
- синтаксис языка Java (JDK 1.4),
- писать программы на языке Java,
- работать с утилитами командной строки JDK 1.4.
Содержание разделов дисциплины
- Введение. Первоначальное назначение Java («апплеты»), современное использование. Особенности программирования на Java. Виртуальная машина, байт-код. Простота компиляции. Простота отладки. Кроссплатформенность. Сборка мусора. Язык + библиотека. JRE, JDK. Разные версии Java. Java для разных устройств. «Почти Jav'ы».
- Введение в объектно-ориентированное программирование. Развитие языков программирования. Объектно-ориентированное программирование как следующий (за процедурным программированием) шаг в структурировании программ. Классы. «Hello, World!» на java. Соответствие между именами классов и файлов. Компиляция и запуск программы.
- Синтаксис «внутри метода
main
». Oбъявление локальных переменных. Константы. Стандартные типы. Присваивание, арифметические действия. Полный список операторов. Массивы.new[]
.if
,switch
, циклы. Строки, оператор сложения. - Объекты. Классы и объекты. new. Указатели в Java. Еще один «Hello, World!» — с созданием объекта. Синтаксис вызова метода. Идея объектно-ориентированного программирования: объект в программе = объект в предметной области. Методы и данные в классе. Соглашения о стиле кода.
- Подробности. Сборка мусора. Конструкторы. Метод
finalize()
. Перегрузка (overloading). Права доступа.public
иprivate
. Статические члены класса. «Свойства не объекта, а типа объектов.» Статические (и нестатические) инициализаторы.this
.null
. - Наследование. Наследование классов.
protected
. Иерархия классов. object. Массив как объект. Примитивные типы. - Полиморфизм. Виртуальные методы. Таблица виртуальных функций.
final
. - String. Класс
String
. МетодtoString()
. - Нарушение парадигмы объектно-ориентированного программирования. Явное приведение типов. instanceof. Нетипизированные коллекции. Обертки для примитивных типов.
- Опять наследование. Абстрактные методы. Абстрактные классы. Интерфейсы.
- Обработка исключений. Мотивировка. Класс
RuntimeException
.throw
.Stacktrace
. Примеры:NullPointerException
,ArithmeticException
,ClassCastException
.try
/catch
.finally
. Разделение на checked и unchecked.throws
. - Подробнее о структуре класса. Вложенные классы. Анонимные классы.
- Packages.
package
.import
. права доступа package local. - Инструменты для работы с Java-программами.
jar
,zip
.CLASSPATH
.javap
.
Рекомендуемая литература
- Основная литература
- Д. Флэнаган. Java. Справочник. Символ-Плюс, 2004
- Дополнительная литература
- Б. Эккель. Философия Java. Питер, 2001
- Ян Ф. Дарвин. Java Сборник рецептов для профессионалов. Питер, 2002
- http://java.sun.com/