Объектно-ориентированное программирование
В начале 80-х годов возникло новое направление, основанное на понятии объекта. Объект – это совокупность свойств (структур данных, характеристик для этого объекта), методов обработки (подпрограммы изменений свойств) и событий, на которые данный объект может реагировать и которые приводят, как правило, к изменению свойств объекта.
Объектно-ориентированное (ОО) программирование, разработанное в середине 70-х гг. Керниганом и Риччи и реализованное в ОО-версиях языков Си и Паскаль, представляет собой отображение объектов реального мира, их свойств (атрибутов) и связей между ними при помощи специальных структур данных. Структурное программирование подразумевает наличие ряда встроенных структур данных: целых, вещественных и строковых переменных, массивов, записей -
при помощи которых и производится отображение свойств объектов реального мира. При объектно-ориентированном подходе для объекта создается своя структура данных (класс), содержащая как свойства объекта (поля), так и процедуры для управления объектом (методы).
Например, рассмотрим простейший объект - точку на экране. Она имеет как минимум три поля (координаты и цвет) и методы вроде "ChangeColor" (поменять цвет), "MoveXY" (переместиться в точку х, у) и т.д. Объектно-ориентированный подход является в настоящее время доминирующим и позволяет сократить время разработки и увеличить надежность больших проектов. Однако программы в данном стиле отличаются громоздким синтаксисом; в целом идеология объектно- ориентированного подхода весьма неочевидна, часто воспринимается с трудом (особенно это характерно для языка Си, который и в своем первоначальном виде отличается крайне неудобочитаемым синтаксисом), и переход к его использованию труден или невозможен для большого числа программистов.
Объекты могут иметь идентичную структуру и отличаться только значениями свойств. В таких случаях в программе создается новый тип, основанный на единой структуре объекта. Он называется классом, а каждый конкретный объект, имеющий структуру этого класса, называется экземпляром класса.
Объектно-ориентированное программирование базируется на трех концепциях – инкапсуляции, наследовании и полиморфизме. Объединение данных с методами в одном классе (типе) называется инкапсуляцией. Помимо объединения, инкапсуляция позволяет ограничивать доступ к данным объектов и реализации методов классов. В результате появляется возможность использования классов в приложениях на основе только описаний этих классов.
Важная характеристика класса – возможность создания на его основе новых классов с наследованием всех его свойств и методов добавления собственных. Класс, не имеющий предшественника, называется базовым. Например, класс «животное» имеет свойства «название»,
«размер», методы «идти» и «размножаться». Созданный на его основе класс «кошка» наследует все эти свойства и методы, к которым добавляется свойство «окраска» и метод «пить». Наследование позволяет создавать новые классы, повторно используя уже готовый исходный код и не тратя времени на его переписывание.
В большинстве случаев методы базового класса у классов-наследников приходится переопределять – объект класса «кошка» выполняет метод «идти» совсем не так, как объект класса
«амеба». Такое свойство объектов переопределять методы наследуемого класса и корректно их использовать называется полиморфизмом.
В основе функционального стиля лежит понятие функции как "черного ящика". Основная идея - задача разбивается на группы, которые дробятся на элементарные функции, определенное сочетание которых реализует решение подзадач. Процесс дробления на элементарные функции заканчивается тогда, когда каждая из полученных функций выполняет некоторую логически
отдельную операцию и результат работы данной функции может служить входом для другой функции. Язык реализации Лисп.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.