Файл: Основные понятия объектно-ориентированного программирования (Основные понятия объектно-ориентированного программирования).pdf
Добавлен: 01.04.2023
Просмотров: 123
Скачиваний: 2
СОДЕРЖАНИЕ
1. Основные понятия объектно-ориентированного программирования
2. Объект - как базовое понятие в объектно-ориентированном программировании
2.1 Первый принцип объектно-ориентированного программирования - ИНКАПСУЛЯЦИЯ
2.2 Второй принцип объектно-ориентированного программирования - НАСЛЕДОВАНИЕ
2.3 Третий принцип объектно-ориентированного программирования - ПОЛИМОРФИЗМ
3. Процесс объектно-ориентированного проектирования
4. Объектно-ориентированные языки
5. Простая объектная модель и ссылочно-объектная модель
Введение
Одна из целей программирование – разработка алгоритма. В ходе развития программирования сформировалось два основных подхода – процедурный и объектно-ориентированный.
Объектно-ориентированное программирование – это методология программирования, основанная на представлении программы в виде совокуп-ности взаимодействующих друг с другом объектов, каждый из которых является экземпляром определенного класса, а классы могут образовывать иерархию наследования. Объектно-ориентированной программа может считаться только при соблюдении трех требований:
1) Объекты – базовые элементы программы. Но не алгоритмы, как в случае с процедурным программированием;
2) Объект является экземпляром класса;
3) Классы организованы иерархически.
Программа при таком подходе представляется как набор объектов и их связей. Объектно-ориентированное программирование является более модульным и абстрактным нежели предыдущие попытки абстрагирования данных данных и детализацией программирования на внутреннем уровене.
Особенно ощутимы преимущества использования принципов объектно-ориентированного программирования при разработке крупных программных продуктов. С увеличением сложности наиболее ощущается преимущество и выгоды от использования технологий объектно-ориентированной программирования. Несомненно важным преимуществом объектно-ориентированного программирования является возможность многократного использования программного кода. Например, создав класс, можно порождать от него новые классы, изменяя их свойства и функциональное назначение. И решение задач с применением принципов объектно-ориентированного программирования значительно упрощается и делает процесс более наглядным и надежным. Таким образом, можем представлять объектно-ориентированное программирование как метод построения программ в виде множества взаимодействующих объектов, поведение и структура которых описаны соответствующими классами. Все эти классы образуют иерархию классов, выражающую отношение наследования.
Разработчики объектно-ориентированных программ часто используют библиотеки классов. Библиотека представляется в виде заданной базовой иерархической структуры. Из библиотеки выбирается некоторая подструктура и затем расширяется новыми классами с применением принципов наследования.
Целью данной курсовой работы является изучение основных понятий объектно-ориентированного программирования. Для достижения поставленной цели рассмотрим основополагающие принципы объектно-ориентированного программирования и их применение в различных языках программирования.
1. Основные понятия объектно-ориентированного программирования
В основе объектно-ориентированного языка программирования лежат два основных понятия: объект и класс. Основными концепциями Объектно-ориентированное программирование являются три концепциях: инкапсуляция, полиморфизм и наследование.
Инкапсуляция (пакетирование) - механизм, связывающий объект, являющийся логическим целым, включающим данные и код, обрабатывающий эти данные, сохраняющий их от внешнего воздействия и ошибочного использования. Объект защищает против случайной или несанкционированной модификации его составляющих членов. Закрытые данные или коды (методы) доступны только для частей этого объекта и недоступны вне его. Открытая часть объекта предназначена для обеспечения контролируемого интерфейса его закрытой части.
Полиморфизм обеспечивает возможность реагировать различным обра-зом на одно и то же сообщение. Уменьшая сложность программы посредством использования одного и того же интерфейса для задания целого класса действий. Поддержка полиморфизма в осуществляется через виртуальные функции и механизм перегрузки и переопределения. Полиморфизм позволяет манипулировать объектами различной степени сложности путем создания общего для них стандартного интерфейса для реализации похожих действий.
Наследование представляет собой механизм, благодаря которому новый класс может создаваться, наследуя свойства от уже существующего класса. Новый класс, используя наследование, нуждается только в определении специфичных только для этого класса компонент. Наследование позволяет поддерживать концепцию иерархии классов.
2. Объект - как базовое понятие в объектно-ориентированном программировании
Понятие объект представимо как ряд определений. Рассмотрим подробнее эти определения с целью понять основопологающее понятие парадигмы объектно-ориентированного программирования.
Объект — это сущность, способная сохранять свое состояние и обеспечивающая набор операций для проверки и изменения этого состояния.
Объект — это особый опознаваемый предмет, блок, некая сущность, реальная или абстрактная, имеющая какое-либо функциональное назначение в данной предметной области.
Объект может быть охарактеризован структурой, его состоянием, поведением и индивидуальностью. Состояние объекта определяется перечнем всех возможных свойств и текущими каждого из этих свойств. Свойства объекта характеризуются значениями его параметров. Поведение объекта это воздействие объекта на другие объекты или же то как он подвергается воздействию со стороны других объектов, с точки зрения изменения его собственного состояния и состояния других объектов. Таким образом, поведение объекта определяется его действиями. Операцией называют определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию.
Выделим следующие типы операций:
- конструктор, создание и инициализация объекта;
- деструктор, разрушение объекта;
- модификатор, изменение состояние объекта;
- селектор для доступа к переменным объекта без их изменения;
- итератор для доступа к содержанию объекта по частям в определенной последовательности.
Объекты взаимодействуют между собой с помощью сообщений. Принимая сообщение, объект выполняет соответствующее действие. Эти действия обычно называются методами.
Имеется и иная классификация методов объекта, когда выделяют функции управления, реализации, доступа и вспомогательные функции.
Под индивидуальностью объекта понимают свойство объекта, позволяющее отличать этот объект от всех других объектов.
Объекты могут находиться в определенных отношениях друг к другу. Эти отношения могут быть иерархическими. Основные иерархические отношения - это отношения использования и включения.
Отношение использования реализуется посылкой сообщений от одного объекта к другому. При этом объект, передающий сообщение, может выступать в роли:
- активного или воздействующего объекта, когда он воздействует на другие объекты, но сам воздействию не подвергается;
- пассивного или исполняющего, когда объект подвергается воздействию, но сам на другие объекты не воздействует;
- посредника, если объект и воздействует и сам подвергается воздействию.
Отношение включения имеет место, когда составной объект содержит другие объекты.
Объект состоит из структуры данных и связанных с ней методов, работающих с данными, записанными в экземплярах структуры данных.
Объект может наследовать характеристики порождающего объекта. Это означает, что структура данных нового объекта включает структуру данных порождающего объекта, а также новые данные. Кроме того, новый объект может вызывать все процедуры порождающего объекта, а также те процедуры методов, которые в нем описываются.
Объект, не имеющий наследования, называется базовым объектом. Объект, наследующий характеристики других объектов, называется порожденным или производным объектом.
2.1 Первый принцип объектно-ориентированного программирования - ИНКАПСУЛЯЦИЯ
Первым основным принципом объектно-ориентированнного программирования называется инкапсуляцией. Концепция инкапсуляции основывается на положении, гласящем, что внутренние данные объекта не должны быть напрямую доступны через экземпляр объекта. Вместо этого, если вызывающий код желает изменить состояние объекта, то должен делать это через методы доступа и изменения.
При работе с инкапсуляцией всегда следует принимать во внимание то, какие аспекты типа видимы различным частям приложения.
В частности, типы: классы, интерфейсы, структуры, перечисления, делегаты.А также их члены: свойства, методы, конструкторы, поля, которые определяются с использованием определенного ключевого слова модификатора доступа, управляющего «видимостью» элемента другим частям приложения.
Объекты моделируют характеристики и поведение элементов мира, в котором мы живем. Они являются окончательной абстракцией данных.
Объекты содержат вместе все свои характеристики и особенности поведения. Отношения частей к целому и взаимоотношения между частями становятся понятнее тогда, когда все содержится вместе в одной упаковке. Это и называется инкапсуляцией. Иначе говоря, это базовый принцип при котором атрибуты и поведение объекта объединяются в одном классе, внутренняя реализация объекта скрывается от пользователя, а для работы с объектом предоставляется открытый интерфейс. Инкапсуляция делает некоторые из компонент доступными только внутри класса.
2.2 Второй принцип объектно-ориентированного программирования - НАСЛЕДОВАНИЕ
Вторым принципом объектно-ориентированнного программирования называется наследование. Эта технолгия облегчающая повторное использование кода. Базовая идея, лежащая в основе классического наследования, заключается в том, что новые классы могут создаваться с использованием существующих классов в качестве отправной точки.
Ннаследование позволяет строить новые определения классов, расширяющие функциональность существующих классов. Существующий класс, который будет служить основой для нового класса, называется базовым или родительским классом. Назначение базового класса состоит в определении всех общих данных и членов для классов, которые расширяют его. Расширяющие классы формально называются производными или дочерними классами. Объекты могут наследовать характеристики и функционал родительского объекта. Процесс, с помощью которого один тип наследует характеристики другого типа, называется наследованием. Наследник называется порожденным (дочерним) типом, а тип, которому наследует дочерний тип, называется порождающим (родительским) типом.
Иными словами, если применяется наследование, то не нужно реализовывать общий базовый функционал других классов, а достаточно применить наследование. И, в таком случае, новый порожденный класс уже обладает знаниями, свойствами и характеристиками родительских классов
Наследование может быть одиночным и множественным. При множественном наследовании производный (новый) класс имеет более одного наследуемого (старого) класса, из которых образуется новый класс. При этом новый класс наследует поведение этих классов.
2.3 Третий принцип объектно-ориентированного программирования - ПОЛИМОРФИЗМ
Третьим принципом объектно-ориентированнного программирования называется полиморфизм, предоставляющий подклассу способ определения собственной версии метода, определенного в его базовом классе, с использованием процесса, который называется переопределением методов и свойств. Иными словами, это подход при котором в переменной, имеющей тип родителя, допускается хранение ссылки на его потомка. Соответственно допускается использование потомка там где по сигнатуре ожидается родитель. И, в случае подмены, при попытке вызова какого - либо метода, у родителя будет вызываться метод потомка. Как следствие, полиморфизм позволяет абстрагироваться от конкретных реализаций методов.