Технология объектно-ориентированного программирования
Технология объектно-ориентированного программирования — это совокупность методик программирования, которые основаны на представлении программы в форме набора объектов, являющихся экземплярами определённых классов, образующих иерархию наследования.
Введение
С развитием вычислительных устройств вырабатывались новые подходы, которые помогали справиться с возрастающей сложностью программных продуктов. Применение структурного программирования при формировании программ средней сложности дало свои результаты, но этого оказалось недостаточно при достижении программой определённого размера. Для написания программ повышенной сложности, специалисты разработали объектно-ориентированное программирование. Объектно-ориентированное программирование является подходом к реализации программных приложений, основанным именно на объектах, а не на процедурах. Данный подход даёт возможность максимизации принципов модульности и «информационного сокрытия». Объектно-ориентированная программа основывается на связывании или инкапсуляции структур информации и процедуры, работающей с информацией в структуре, с модулем.
Объектно-ориентированные технологии программирования дают возможность разложения проблемы на составляющие её компоненты. Это сильно упрощает всю процедуру и даёт возможность оперировать с существенно большими по объёму программами. Все составляющие компоненты становятся самостоятельными объектами, которые содержат свои личные коды и данные, описывающие его. Объект является замкнутой независимой сущностью, взаимодействующей с внешним окружением посредством строго определённого интерфейса в формате принимаемых сообщений. Объекты имеют определённый набор свойств, методов и могут реагировать на события, такие как, нажатие клавиши мышки, временные интервалы и так далее, в отличие от процедурного программирования, в котором очерёдность исполнения операторов программы задаётся порядком их расположения и управляющими командами. При объектно-ориентированном программировании очерёдность исполнения процедур и функций определяют события.
Технология объектно-ориентированного программирования
Объекты, имеющие одинаковые свойства и поведение, должны объединяться в классы. Программы, составленные на объектно-ориентированном языке, являются совокупностью описаний классов. Классы, в свой черёд, являются описанием свойств и поведения входящих в них объектов. Свойства определяются при помощи других объектов, являющихся более простыми. А поведение объектов может быть описано путём анализа сообщений между объектами.
Применительно к объектно-ориентированным языкам программирования понятия объект и класс могу быть конкретизированы следующим образом:
- Объектом является поименованный набор данных (объектных полей), физически расположенных в компьютерной памяти, и методы доступа к ним. Имя применяется для обеспечения доступа к полям и методам, определяющим объект. В предельном случае у объекта может не быть ни полей, ни методов, а также он может не обладать именем.
- Все объекты могут быть отнесены к определенным классам. Класс имеет описание данных возможные операции над ними. В классе предоставляется общее описание некоторой совокупности родственных, фактически существующих объектов. Объектом является конкретный компонент класса.
Объектно-ориентированное программирование базируется на следующих правилах:
- Правило абстрагирования данных.
- Правило инкапсуляции.
- Правило наследования.
- Правил полиморфизма.
- Правило «позднего связывания».
Абстрагирование считается одной из главных методик, применяемых для разрешения сложных задач. Абстрагирование — это упрощённое описание или представление системы, при котором определённые параметры и детали подлежат выделение, а остальные игнорируются. То есть, отличной считается та абстракция, которая выделяет параметры, являющиеся существенными для рассмотрения и применения, и игнорирует такие, которые на текущий момент являются несущественными. Или по другому, абстракция должна выделить главные характеристики выбранного объекта, которые отличают его от любого другого объекта и, следовательно, ясно задаёт его концептуальные ограничения с позиции наблюдателя.
Инкапсуляция – это метод, объединяющий данные и код, осуществляющий манипуляции с этими данными, а также способный защитить, прежде всего, данные от непосредственного внешнего доступа и неверного их применения. Иными словами, доступ к данным этого класса может быть выполнен лишь при помощи методов этого же класса.
Наследование – это процесс, при помощи которого один объект способен приобрести свойства других объектов. То есть, объект способен унаследовать главные свойства другого объекта и добавить к ним свойства и методы, соответствующие только ему. На следование может быть следующих видов:
- Наследование одиночного типа. Класс может иметь один и не более того суперкласс (предок).
- Наследование множественного типа. Класс способен обладать любым количеством предков.
Полиморфизм — это механизм, который использует одно и то же наименование метода для разрешения двух или больше сходных, но всё же немного разных задач. Цель полиморфизма относительно объектно-ориентированного программирования заключается в использовании единого имени для определения общих для класса действий. Концепцией полиморфизма считается тезис «один интерфейс, много методов».
Механизм «позднего связывания» при выполнении программы задаёт принадлежность объекта к определённому классу и осуществляет вызов метода, принадлежащего к классу, из которого был применён объект.
Основополагающим принципом наследования и полиморфизма считается следующее правило: объект подкласса может быть использован везде, где применяется объект суперкласса. Когда вызывается метод класса, то его поиск выполняется в самом классе.