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

Прототипом объектно-ориентированного программирования послужил ряд средств, содержащихся в языке SIMULA-67. Но оформилось оно в самостоятельный стиль программирования в связи с появлением языка SMALLTALK, первоначально предназначенного для реализации функций машинной графики и разработанного А.Кеем в 1972 г.

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

Основными особенностями объектно-ориентированных языков являются:

1) наличие активных объектов (акторов);

2) формирование объектов путем наследования свойств;

3) посылка сообщений от объекта к объекту как механизм организации вычислительного процесса.

Суть данного стиля программирования выражается формулой "объект = данные + процедуры (функции).

Итак объект интегрирует некоторое состояние (и / или структуру данных и доступные только ему механизмы изменения этого состояния. Объединение данных и процедур в объекте называется инкапсуляцией, и это свойство неотъемлемо присуще объектно-ориентированному программированию. Многие развитые объектно - ориентированные языки программирования (Turbo Pascal, C++) обладают наряду с этим и полиморфизмом, то есть возможностью использования методов с одинаковыми именами для работы с данными различных типов. В этом случае говорят о перегрузке функций и операций.

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

Объектно-ориентированное программирование позволяет устранить этот недостаток структурного программирования. Для описания объектов вводится понятие класс во многом аналогичное понятию структуры. Ряд языков, включая SMALLTALK-80, C++, Turbo Pascal, Objective-C, расширяют это понятие за счет того, что классы размещаются в узлах дерева наследования (свойств). Таким образом строится иерархия классов. Различают базовые и производные классы, объекты которых могут наследовать данные и функции нижележащих классов. Производный класс может содержать несколько базовых классов. В этом случае говорят о множественном наследовании объектов (данных и функций) нижележащих классов. Наследование наряду с инкапсуляцией и полиморфизмом является важнейшим свойством объектно-ориентированного программирования.

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

Объектно-ориентированные языки находят применение при построении моделей, в том числе при создании языков представления знаний и реализации протоколов вычислительных сетей. Этот стиль программирования характеризуется богатыми графическими возможностями и средой программирования, развитой модульностью структуры программ. Типичными представителями языков этого направления являются Visual C++ (Microsoft) и Borland C++, работающие как Windows-приложения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: