Объектно-ориентированная технология развивается в различных областях вычислительной техники как средство решения проблем связанных со сложностью создаваемых систем. Объектный подход применяется не только в программировании, но также в проектировании интерфейса пользователя, баз данных, баз знаний и даже компьютерной архитектуры. Смысл такого широкого подхода состоит в том, что он позволяет применить объектную ориентацию для решения всего круга проблем, связанных со сложными системами. В основе объектно-ориентированного проектирования лежит представление о том, что программную систему необходимо проектировать как совокупность взаимодействующих друг с другом объектов, рассматривая каждый объект как экземпляр определенного класса, причем классы образуют иерархию.
Обьектно-ориентированное программирование -- это методология программирования, которая основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса, а классы образуют иерархию на принципах наследования. В данном определении можно выделить три части:
Объектно-ориентированная технология основана на выявлении и установлении взаимодействия множества объектов и используется чаще всего при создании компьютерных систем на стадии проектирования и программирования.
Объектно-ориентированный подход использует объектную декомпозицию, при которой статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами.
Объект - это предмет, событие, явление, которые выполняют определенные функции и являются источником или потребителем информации.
Все объекты наделены определенными свойствами, которые в совокупности выделяют объект из множества других объектов.
Объект обладает качественной определенностью, что позволяет выделить его из множества других объектов и обусловливает независимость создания и обработки от других объектов.
Например, объект можно представить перечислением присущих ему свойств:
ОБЪЕКТ_А (свойство_1, свойство_2,...., свойство_k).
Объектная модель, которая является концептуальной базой объектно-ориентированной методологии, имеет пять главных элемента:
1) Абстрагирование – это выделение существенных характеристик анализируемого объекта или процесса.
2) Инкапсуляция – это процесс отделения друг от друга отдельных элементов объекта, определяющих его устройство и поведение. Инкапсуляция служит для того, чтобы изолировать интерфейс объекта, отражающий
его внешнее поведение, от внутренней реализации объекта. Абстрагирование и инкапсуляция являются взаимно дополняющими операциями.
3) Модульность (свойство системы, связанное с возможностью декомпозиции на ряд внутренне связанных, но слабо связанных между собой модулей)
4) Иерархия (ранжированная (упорядоченная) система абстракций). Наследование - это такая иерархичность абстракций, в которой подклассы наследуют строение от одного или нескольких суперклассов. В подклассе, кроме того, могут быть определены дополнительные атрибуты и методы. Суперклассы отражают наиболее общие, а подклассы более специализированные абстракции. Принцип наследования позволяет упростить выражения абстракции, делая проект менее громоздким и более выразительным.
5) Полиморфизм — взаимозаменяемость объектов с одинаковым интерфейсом. Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования. Полиморфизм интерпретируется как способность объекта принадлежать более чем одному типу. Полиморфизм позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему, которую могут называть по-разному — интерфейс, класс.
Без любого из этих элементов модель не будет объектно-ориентированной. Кроме главных, имеется три дополнительных элемента:
- типизация (ограничение предъявляемых классу объектов, препятствующих взаимозамене различных классов и в большинстве случаев сильно сужающих возможность такой замены)
- параллелизм (свойство, отличающее активные объекты от пассивных)
- сохраняемость или устойчивость (свойство объекта существовать во времени и/или пространстве, вне зависимости от процессов, породивших данный объект).