Объектно-ориентированное программирование. Основные принципы. Классы и объекты. Описание класса. Поля данных и методы - члены класса

Страницы работы

Фрагмент текста работы

1.1.7. Объектно-ориентированное программирование. Основные принципы:

инкапсуляция, наследование, полиморфизм. Классы и объекты. Описание класса. Поля данных и методы - члены класса. Конструкторы и деструкторы. Средства ограничения доступа к членам класса.

В настоящее время ООП является доминирующим стилем при создании больших программ. После структурного и модульного программирования ООП – третий крупный этап в развитии структурного подхода. По мере увеличения числа компонентов в создаваемых программных продуктах число ошибок, связанных с неправильным использованием процедур и некорректным учетом взаимосвязей между компонентами стало нелинейно расти. Уменьшить число подобных ошибок и упростить их обнаружение могла позволить алгоритмическая декомпозиция , ориентирующаяся на естественные элементы пространства решаемо задачи. В этом случае на этапе кодирования и отладки упрощается сопоставление программных конструкций с моделируемыми объектами. Такая декомпозиция называется объектно-ориентированным анализом пространства решаемой задачи или предметной области.

Основой ООП является идея классов (моделирующих объектов). Моделирующие объекты содержат данные и функции, которые описывают свойства моделируемых объектов. Так, данные могут отражать признаковые или количественные свойства (масса, мощность, цена и т.д), а функции отражают поведенческие или операционные свойства (изменить массу, вычислить мощность, установить цену). Таким образом, при объектном подходе интеграция данных и процедур их обработки определяется структурой предметной области, т.е. набором моделируемых объектов, их взаимосвязью или взаимодействием в рамках решаемой задачи. Основные принципы (инкапсуляция, наследование, полиморфизм) позволяют адекватно отражать предметную область.

Инкапсуляция представляет собой объединение и локализацию в рамках объекта, как единого целого, данных и функций, обрабатывающих эти данные. В совокупности они отражают свойства объекта.

В С++ данные класса и объекта называют полями, а функции - методами.

Доступ к полям и методам объекта осуществляется через имя объекта и соответствует именам полей и методов при помощи операций выбора «.» и «->». Это позволяет ограничить и наглядно контролировать  доступ к элементам объекта. This – в рамках объекта является синонимом имени объекта -  указателем на объект. Дополнительным средством доступа к данным и методам является описание элементов класса с помощью private (собственный), protected (защищенный) и public (общедоступный). Гибкое разграничение доступа позволяет уменьшить нежелательное искажение свойств объекта или несанкционированное использование свойств класса.

Наследование - это возможность создания иерархии классов, когда потомки наследуют все свойства своих предков, могут их изменять и добавлять новые. Свойства при наследовании повторно не описываются, что сокращает объем программы.

Полиморфизм - возможность использовать в различных классах иерархии одно имя для обозначения сходных по смыслу действий и гибко выбирать требуемое действие во время выполнения программы.

Классы и объекты. Класс объектов представляет собой программную структуру, в которой данные и функции образуют единое целое и отражают свойства и поведение этого целого в рамках моделируемой предметной области. Результатом ОО анализа  являются классы объектов, которые присутствуют или в перспективе могут присутствовать в пространстве решаемой задачи и образуют иерархии классов, представляемые в виде деревьев наследования свойств. Класс объектов характерен уникальным набором свойств и ему присваивается уникальное имя. В качестве переменных программы используют объекты определенного класса.

Описание класса.

Class / struct / union  имя_класса { список_компонентов};

- одно из ключевых слов class, struct или union указывает на начало описания класса, определяет используемый по умолчанию статус доступа к компонентам класса, а также влияет на возможности наследования свойств этого класса;

-имя_класса – идентификатор;

-список_компонентов – перечень объявлений элементов данных и описаний методов класса.

Каждый компонент класса обладает статусом доступа: общедоступный, собственный и защищенный. В качестве спецификаторов доступа  используются ключевые слова  private (собственный), protected (защищенный) и public (общедоступный), за которыми следует двоеточие. Действие спецификатора начинается с момента его написания до нового

Похожие материалы

Информация о работе