ПРОГРАММА, РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА И КОНТРОЛЬНЫЕ ВОПРОСЫ К ЭКЗАМЕНУ по дисциплине «ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ» Осенний семестр 2015-2016 учебного года Специальность 1–40 05 01-10 «Информационные системы и технологии (в бизнес-менеджменте)» Группы 414301, 414302 Программа учебной дисциплины Раздел 1. КОНЦЕПЦИЯ И ОРИЕНТИРОВАННОГО ПОДХОДА ОСОБЕННОСТИ ОБЪЕКТНО- Тема 1. КОНЦЕПТУАЛЬНЫЕ ОСНОВЫ ОБЪЕКТНООРИЕНТИРОВАННОГО ПОДХОДА Предмет курса и содержание дисциплины, ее связь с другими дисциплинами. Две парадигмы программирования. Основные направления в программировании. Возникновение объектно-ориентированного программирования (ООП). Базовые принципы ООП. Тема 2. ФУНДАМЕНТАЛЬНЫЕ МЕТОДЫ И СВОЙСТВА ОБЪЕКТНОЙ МОДЕЛИ, ЕЕ ПРЕИМУЩЕСТВА Основные положения объектной модели ее преимущества. Абстрагирование. Модульность. Иерархия. Типизация. Раздел 2. БАЗОВЫЕ АБСТРАКЦИИ ОБЪЕКТНООРИЕНТИРОВАННОГО АНАЛИЗА И ПРОГРАММИРОВАНИЯ Тема 3. КЛАССЫ И ОБЪЕКТЫ Базовые конструкции объектно-ориентированных программ: классы и объекты. Инициализация и разрушение объекта. Компоненты класса. Конструкторы и деструктор. Перегрузка и переопределение методов класса. 2 Тема 4. МЕТОДЫ И МЕХАНИЗМЫ ИНКАПСУЛЯЦИИ И ОРГАНИЗАЦИИ ДОСТУПА К ЭЛЕМЕНТАМ ОБЪЕКТА Принцип инкапсуляции. Область действия класса и доступ к компонентам класса. Управление доступом к компонентам класса. Тема 5. СТРУКТУРНЫЕ ЭЛЕМЕНТЫ КЛАССА И МЕТОДЫ ВЗАИМОДЕЙСТВИЯ ОБЪЕКТОВ Организация внешнего доступа к локальным компонентам класса. Интерфейсные (дружественные) методы. Статические и константные компоненты класса. Вложенные классы. Доопределение (перегрузка) операций. Преобразования типов. Тема 6. СТАТИЧЕСКИЕ И ДИНАМИЧЕСКИЕ ОБЪЕКТЫ Указатели и ссылки. Операторы для динамического выделения и освобождения памяти. Статические и динамические объекты. Proxy-классы. Раздел 3. МЕТОДЫ И МЕХАНИЗМЫ РАЗРАБОТКИ ОБЪЕКТНООРИЕНТИРОВАННЫХ ПРОГРАММ Тема 7. МЕХАНИЗМЫ НАСЛЕДОВАНИЯ И ОПРЕДЕЛЕНИЯ СОБСТВЕННЫХ ТИПОВ ДАННЫХ Базовые и производные классы. Основные правила построения производных классов. Конструкторы и деструкторы при наследовании. Композиция и наследование. Простое и множественное наследование. Переопределение членов базового класса в производном. Тема 8. ПОЛИМОРФИЗМ, ЕГО ОСНОВНЫЕ ПРОЯВЛЕНИЯ, МЕХАНИЗМЫ ИСПОЛЬЗОВАНИЯ Понятие раннего и позднего связывания. Использование виртуального механизма для реализации принципа полиморфизма. Виртуальные методы класса и механизм их использования. Абстрактные классы их назначение и свойства. Тема 9. ПАРАМЕТРИЗАЦИЯ ОБЪЕКТОВ В ООП Введение в параметризированные классы. Параметризированные классы и методы, их свойства. Совместное использование параметризации и принципов наследования. Организация внешнего доступа к компонентам параметризированных классов. Параметризированные классы и статические члены. 3 Литература 1. Шилдт. Г. Искусство программирования на C++. / пер. с англ. – СПб. : БХВ-Петербург, 2005. – 928с. 2. Шилдт. Г. C++. Базовый курс. / пер. с англ. – М. : Вильямс, 2014. – 624 с. 3. Дейтел, Х., Дейтел, П. Как программировать на С++. / пер. с англ. – М. : Бином-Пресс, 2009 г. – 1037 с. 4. Страуструп, Б. Язык программирования С++. / пер. с англ. – М. : Бином, Невский Диалект, 2004 г. – 1104 с. 5. Страуструп, Б. Программирование. Принципы и практика использования C++. / пер. с англ. – М. : Вильямс, 2011. – 1246 с. 6. Страуструп, Б. Язык программирования C++. Специальное издание. / пер. с англ. – М. : Вильямс, 2012. – 1136 с. 7. Роберт Лафоре. Объектно-ориентированное программирование в С++. / пер. с англ. – СПб. : Питер, 2004. – 8. Буч, Г. Объектно-ориентированный анализ и проектирование с примерами приложений. / пер. с англ. – М. : Вильямс, 2010 – 720 с. 9. Лаптев, В.В. C++. Объектно-ориентированное программирование./ В.В. Лаптев. – СПб. : Питер, 2008. – 464 с 10. Гамма, Э. Хелм, Р. Джонсон, Р. Влиссидес, Дж. Приемы объектноориентированного проектирования. Паттерны проектирования. / пер. с англ. – СПб. : Питер, 2007. – 366 с. 11. Шаллоуей, А., Тротт, Д. Шаблоны проектирования. Новый подход к объектно-ориентированному анализу и проектированию. / пер. с англ. – М. : Вильямс, 2002. – 288 с. 12. Джамса, К. Учимся программировать на языке C++. / пер. с англ. – М. : Мир, 1997. – 320 с. 13. Павловская, Т. C/C++. Программирование на языке высокого уровня. / Т. Павловская – СПб. : Питер, 2013. – 464 с. 14. Прата, С. Язык программирования C++. Лекции и упражнения. / пер. с англ. – М. : Вильямс, 2012. – 1248 с. 15. Шилдт. Г. Полный справочник по C++. / пер. с англ. – М. : Вильямс, 2014. – 800 с. 16. Мейерс, С. Эффективное использование C++. 35 рекомендаций по улучшению ваших программ и проектов. / пер. с англ. – М. : ООО "Издательство ДМК Пресс". – 294 с. 17. Луцик Ю.А., Комличенко В.Н. Объектно-ориентированное программирование на языке С++. Учебное пособие/ . – Мн. : БГУИР. 2008. – 266 с. 4 КОНТРОЛЬНЫЕ ВОПРОСЫ К ЭКЗАМЕНУ по дисциплине «ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ» Осенний семестр 2015-2016 учебного года Специальность 1–40 05 01-10 «Информационные системы и технологии (в бизнес-менеджменте)» Группы 414301, 414302 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Основные концепции ООП Преимущества ООП Абстракция Инкапсуляция Наследование Полиморфизм Классы и объекты Инициализация и разрушение объекта Выделение памяти для объектов UML диаграммы Типы отношений между классами Агрегация Ассоциация Композиция Модификаторы доступа Объявление классов Сигнатура метода Конструкторы объектов Инициализаторы Перегрузка методов Переопределение методов Указатель this Указатель super Класс Object и его методы Восходящее преобразование Нисходящее преобразование Абстрактные классы Множественное наследование Интерфейсы 5 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. Связывание. Позднее, раннее Конструкторы и полиморфизм Класс Class, его методы Статические переменные и методы Интерфейсы и обратный вызов (callback) Внутренние классы Анонимные классы Локальные внутренние классы Статические внутренние классы Управление доступом к компонентам класса Область действия класса и доступ к компонентам класса Параметризация классов Параметризация объектов Программу, рекомендуемую литературу и контрольные вопросы к экзамену подготовил: РАК Алексей Олегович – канд. физ.-мат. наук, доцент каф. ПИКС