Объектно-ориентированное программирование
Объектно-ориентированное программирование (ООП)— логически следующая за структурным ступень развития. ООП начинает бурно развиваться с конца восьмидесятых годов. Начало девяностых отмечено повсеместным внедрением новых объектно-ориентированных языков программирования. К их числу в первую очередь относится C++ [15] и объектно-ориентированный Pascal. Развитие ООП привело к такому существенному изменению стиля программирования, что даже новые операционные системы стали разрабатываться под влиянием этих концепций. Так, в системах Windows 9x/NT многие сущности ориентированы на ООП. Например, одним из назначений реестра Windows является регистрация в ОС классов, входящих в состав программных комплексов.
Классы (в некоторых версиях Pascal они названы объектами) — основные элементы ООП, расширяющие понятие типов данных и объединяющие (инкапсулирующие) в единое целое данные (в ООП они называются поля) и программный код (в ООП — методы), обрабатывающий их. Здесь структура данных объединена в единое целое с основными методами, осуществляющими доступ к ним и их обработку. После разработки класса программист, использующий его, не нуждается в знании о структуре данных внутри класса. Если изменить структуру данных и при этом соответственно изменить внутренние алгоритмы обработки этих данных, то программист, использующий класс во внешних модулях, не заметит изменения структуры. Если в традиционном структурном программировании изменение структуры данных приведет к необходимости переработать практически все модули, использующие эту структуру, то в ООП переработка затронет только методы класса. Таким образом, ООП является расширением концепции структурного программирования.
Базируется ООП на следующих основных принципах:
· инкапсуляция (описана выше),
· наследование,
· полиморфизм (многообразность),
· в последнее время к основным понятиям относят скрытие данных
Механизм наследования позволяет использовать структуры данных и методы уже разработанного класса в новых классах, которые имеют много общего со старым, но отличаются от него некоторыми деталями. Старый является родительским классом, а новый — дочерним классом. Если бы при создании нового класса все приходилось бы начинать с нуля, то эффективность использования классов могла быть поставлена под сомнение. Однако, построив генеалогическую структуру реальных объектов, выделив их общие стороны и отличия, программист может программно реализовать эту структуру благодаря наследованию. При этом для дочернего класса он опишет только его отличительные признаки, а все общее дочерний класс автоматически «заимствует» у родительского.
Полиморфизм подразумевает возможность для конкретного экземпляра объекта во время выполнения принимать образ различных классов программы. Это позволяет организовать массив объектов разного типа, и обрабатывать в головной программе каждый из них по единому алгоритму, не задумываясь над тем, какому классу реально принадлежит очередной объект. Скрытие данных запрещает внешней программе оперировать непосредственно с полями класса. Чтение или запись данных в поля можно выполнять только посредством специальных методов, которые называются свойствами.
Дата добавления: 2016-07-18; просмотров: 1843;