Объектно-ориентированное программирование

Объектно-ориентированное программирование

Объектно-ориентированное программирование (далее ООП) позволяет осуществить разложение проблемы на составные части, являющиеся самостоятельным объектом. Все объекты обладают собственным кодом и данными, относящимися к данному объекту.

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

Все сведения о программируемом объекте и его связях с прочими объектами могут объединяться в единую структурированную переменную. Она может быть названа объектом в первом приближении.

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

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

Объектом является структурированная переменная, которая содержит всю информацию об осуществляемом в программе понятии или некотором физическом предмете.

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

Основные понятия ООП

Любая из функций в программе является методом относительного объекта того или иного класса.

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

Среди основных понятий рассматриваемого программирования: инкапсуляция, наследование, а также полиморфизм.

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

Внутри объекта данные и код могут быть как открытого, так и закрытого типа.

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

Открытые данные и код, наоборот, доступны всем частям программы, что касается и других частей одного объекта.

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

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

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

Доступный в той или иной точке программы объект всегда корректно вызывает свойственные ему методы, даже если нет всех данных о его типе.

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

Например, поиск модуля в языке C требует осуществления таких функций:

int abs(int);
long int labs(long int);
double fabs(double);

C++ предоставляет возможность описать полиморфную функцию, обладающую одним именем, но разными наборами и типами аргументов.

Нет комментариев

Оставить комментарий