- •21. Объектно-ориентированная методология разработки программ. Виртуальные и динамические методы. Ранняя связь, поздняя связь. Отличие виртуальных и динамических методов.
- •Принципы:
- •22. Объектно-ориентированная методология разработки программ. Объект. Основные понятия. Наследование, инкапсуляция, полиморфизм
- •23.Объектно-ориентированные средства разработки. Директивы доступа. Наследование, правила наследования. Правило вызова наследуемых методов. Конструкторы, деструкторы.
- •Наследование.
- •24.Объектно-ориентированные средства. Виртуальные функции. Назначение, синтаксис. Абстрактные классы. Перегруженные операции
- •Перегрузка операций.
- •25.Объектно-ориентированные средства. Основные виды класса. Доступ к базовым и производным классам. Друзья классов. Абстрактные классы.
- •Основные виды класса:
- •Операции помещения и извлечения
- •27.Описание программного средства. Спецификация качества программного средства
- •28.Описание программного средства. Функциональная спецификация программного средства.
- •Функциональная спецификация программного средства.
- •Функциональная спецификация состоит из трех частей:
- •29.Основные классы архитектур программных средств.
21. Объектно-ориентированная методология разработки программ. Виртуальные и динамические методы. Ранняя связь, поздняя связь. Отличие виртуальных и динамических методов.
Технология объектного программирования связана с использованием при проектировании программы понятий объектов и их классов.
Структурное программирование - модульное нисходящее пошаговое проектирование алгоритма и структур данных.
Принципы:
1)Принцип абстракции. Сначала разраб. важные вещи, а потом более мелкие детали.
2)Принцип формальности. Подразумевает строгий методологический подход.
3)«Разделяй и властвуй» деление большой задачи на малые сост.
4)Принцип иерархичного упорядочивания. Структура разбиения не менее важна, чем факт разбиения
В технологии ООПвзаимоотношения данных и алгоритма сильно связаны: во-первых, класс (базовое понятие этой технологии) объединяет в себе данные (структурированная переменная) и методы (функции). Во-вторых, схема взаимодействия функций и данных принципиально иная. Метод (функция), вызываемый для одного объекта, как правило, не вызывает другую функцию непосредственно. Для начала он должен иметь доступ к другому объекту (создать, получить указатель, использовать внутренний объект в текущем и т.д.), после чего он уже может вызвать для него один из известных методов. Таким образом, структура программы определяется взаимодействием объектов различных классов между собой. Как правило, имеет место иерархия классов, а технология ООП иначе может быть названа как программирование "от класса к классу".
Понятия объекта, класса объектов.
С объектом связывается набор действий, иначе называемых методами. С точки зрения языка программирования это функции, получающие в качестве обязательного параметра указатель на объект. Технология ООП запрещает работать с объектом иначе, чем через методы, то есть внутренняя структура объекта скрыта от внешнего пользователя. Описание множества однотипных объектов называется классом.
Объект- структурированная переменная, содержащая всю информацию о некотором физическом предмете или реализуемом в программе понятии.
Класс - описание множества таких объектов и выполняемых над ними действий.
Виртуальной функцией - называется функция, независимо определенная в каждом из группы производных классов и имеющая в них общее имя.Виртуальная функция обладает тем свойством, что при отсутствии полной информации о том, объект какого из производных классов в данный момент обрабатывается, она тем не менее корректно вызывается в том виде, к каком она была определена для данного конкретного класса. Такая возможность является результатомпозднего связывания. При позднем связывании адреса определяются динамически во время выполнения программы, а не статически во время компиляции, как в традиционных компилируемых языках, в которых применяетсяраннее связывание.
Виртуальные функции определяются в родительском классе, а в производных классах происходит их доопределение и для них создаются новые реализации. Виртуальные функции используют таблицу для адресной информации, которая инициализируется при выполнения конструктором.
Динамические методы—это обычные (не виртуальные и не статические методы). Здесь применяется раннее связывание, т.е. во время компиляции.