1.1.7. Объектно-ориентированное программирование. Основные принципы:
инкапсуляция, наследование, полиморфизм. Классы и объекты. Описание класса. Поля данных и методы - члены класса. Конструкторы и деструкторы. Средства ограничения доступа к членам класса.
В настоящее время ООП является доминирующим стилем при создании больших программ. После структурного и модульного программирования ООП – третий крупный этап в развитии структурного подхода. По мере увеличения числа компонентов в создаваемых программных продуктах число ошибок, связанных с неправильным использованием процедур и некорректным учетом взаимосвязей между компонентами стало нелинейно расти. Уменьшить число подобных ошибок и упростить их обнаружение могла позволить алгоритмическая декомпозиция , ориентирующаяся на естественные элементы пространства решаемо задачи. В этом случае на этапе кодирования и отладки упрощается сопоставление программных конструкций с моделируемыми объектами. Такая декомпозиция называется объектно-ориентированным анализом пространства решаемой задачи или предметной области.
Основой ООП является идея классов (моделирующих объектов). Моделирующие объекты содержат данные и функции, которые описывают свойства моделируемых объектов. Так, данные могут отражать признаковые или количественные свойства (масса, мощность, цена и т.д), а функции отражают поведенческие или операционные свойства (изменить массу, вычислить мощность, установить цену). Таким образом, при объектном подходе интеграция данных и процедур их обработки определяется структурой предметной области, т.е. набором моделируемых объектов, их взаимосвязью или взаимодействием в рамках решаемой задачи. Основные принципы (инкапсуляция, наследование, полиморфизм) позволяют адекватно отражать предметную область.
Инкапсуляция представляет собой объединение и локализацию в рамках объекта, как единого целого, данных и функций, обрабатывающих эти данные. В совокупности они отражают свойства объекта.
В С++ данные класса и объекта называют полями, а функции - методами.
Доступ к полям и методам объекта осуществляется через имя объекта и соответствует именам полей и методов при помощи операций выбора «.» и «->». Это позволяет ограничить и наглядно контролировать доступ к элементам объекта. This – в рамках объекта является синонимом имени объекта - указателем на объект. Дополнительным средством доступа к данным и методам является описание элементов класса с помощью private (собственный), protected (защищенный) и public (общедоступный). Гибкое разграничение доступа позволяет уменьшить нежелательное искажение свойств объекта или несанкционированное использование свойств класса.
Наследование - это возможность создания иерархии классов, когда потомки наследуют все свойства своих предков, могут их изменять и добавлять новые. Свойства при наследовании повторно не описываются, что сокращает объем программы.
Полиморфизм - возможность использовать в различных классах иерархии одно имя для обозначения сходных по смыслу действий и гибко выбирать требуемое действие во время выполнения программы.
Классы и объекты. Класс объектов представляет собой программную структуру, в которой данные и функции образуют единое целое и отражают свойства и поведение этого целого в рамках моделируемой предметной области. Результатом ОО анализа являются классы объектов, которые присутствуют или в перспективе могут присутствовать в пространстве решаемой задачи и образуют иерархии классов, представляемые в виде деревьев наследования свойств. Класс объектов характерен уникальным набором свойств и ему присваивается уникальное имя. В качестве переменных программы используют объекты определенного класса.
Описание класса.
Class / struct / union имя_класса { список_компонентов};
- одно из ключевых слов class, struct или union указывает на начало описания класса, определяет используемый по умолчанию статус доступа к компонентам класса, а также влияет на возможности наследования свойств этого класса;
-имя_класса – идентификатор;
-список_компонентов – перечень объявлений элементов данных и описаний методов класса.
Каждый компонент класса обладает статусом доступа: общедоступный, собственный и защищенный. В качестве спецификаторов доступа используются ключевые слова private (собственный), protected (защищенный) и public (общедоступный), за которыми следует двоеточие. Действие спецификатора начинается с момента его написания до нового
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.