Читайте также:
|
|
Прототипом объектно-ориентированного программирования послужил ряд средств, содержащихся в языке SIMULA-67. Но оформилось оно в самостоятельный стиль программирования в связи с появлением языка SMALLTALK, первоначально предназначенного для реализации функций машинной графики и разработанного А.Кеем в 1972 г.
Корни объектно-ориентированного программирования уходят в одну из ветвей логики, в которой первичным считается не отношение (как для логического программирования), а объект. По сравнению с исчислением предикатов объектно-ориентированные логические системы обладают более сложным синтаксисом и правилами вывода. С объектно-ориентированным программированием тесно связана теория акторов.
Основными особенностями объектно-ориентированных языков являются:
1) наличие активных объектов (акторов);
2) формирование объектов путем наследования свойств;
3) посылка сообщений от объекта к объекту как механизм организации вычислительного процесса.
Суть данного стиля программирования выражается формулой "объект = данные + процедуры (функции).
Итак объект интегрирует некоторое состояние (и / или структуру данных и доступные только ему механизмы изменения этого состояния. Объединение данных и процедур в объекте называется инкапсуляцией, и это свойство неотъемлемо присуще объектно-ориентированному программированию. Многие развитые объектно - ориентированные языки программирования (Turbo Pascal, C++) обладают наряду с этим и полиморфизмом, то есть возможностью использования методов с одинаковыми именами для работы с данными различных типов. В этом случае говорят о перегрузке функций и операций.
Концепция объекта опирается на методы структурного программирования и методы разработки программ, основанные на абстракции данных. Структурное программирование связано с функциональной декомпозицией и предполагает проектирование программного продукта "сверху вниз". Однако структурное программирование не позволяет учесть зависимость архитектуры программ от структур данных, которые ей придется обрабатывать.
Объектно-ориентированное программирование позволяет устранить этот недостаток структурного программирования. Для описания объектов вводится понятие класс во многом аналогичное понятию структуры. Ряд языков, включая SMALLTALK-80, C++, Turbo Pascal, Objective-C, расширяют это понятие за счет того, что классы размещаются в узлах дерева наследования (свойств). Таким образом строится иерархия классов. Различают базовые и производные классы, объекты которых могут наследовать данные и функции нижележащих классов. Производный класс может содержать несколько базовых классов. В этом случае говорят о множественном наследовании объектов (данных и функций) нижележащих классов. Наследование наряду с инкапсуляцией и полиморфизмом является важнейшим свойством объектно-ориентированного программирования.
Описанная модель дискретных объектов позволяет распараллелить вычисления.
Объектно-ориентированные языки находят применение при построении моделей, в том числе при создании языков представления знаний и реализации протоколов вычислительных сетей. Этот стиль программирования характеризуется богатыми графическими возможностями и средой программирования, развитой модульностью структуры программ. Типичными представителями языков этого направления являются Visual C++ (Microsoft) и Borland C++, работающие как Windows-приложения.
Дата добавления: 2014-12-19; просмотров: 103 | Поможем написать вашу работу | Нарушение авторских прав |