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

Объектно-ориентированное программирование (ООП)— логически следующая за структурным ступень развития. ООП начинает бурно развиваться с конца восьмидесятых годов. Начало девяностых отмечено повсеместным внедре­нием новых объектно-ориентированных языков програм­мирования. К их числу в первую очередь относится C++ [15] и объектно-ориентированный Pascal. Развитие ООП приве­ло к такому существенному изменению стиля программи­рования, что даже новые операционные системы стали разрабатываться под влиянием этих концепций. Так, в системах Windows 9x/NT многие сущности ориентирова­ны на ООП. Например, одним из назначений реестра Windows является регистрация в ОС классов, входящих в состав программных комплексов.

Классы (в некоторых версиях Pascal они названы объек­тами) — основные элементы ООП, расширяющие понятие типов данных и объединяющие (инкапсулирующие) в еди­ное целое данные (в ООП они называются поля) и про­граммный код (в ООП — методы), обрабатывающий их. Здесь структура данных объединена в единое целое с ос­новными методами, осуществляющими доступ к ним и их обработку. После разработки класса программист, использующий его, не нуждается в знании о структуре данных внутри класса. Если изменить структуру данных и при этом соответственно изменить внутренние алгоритмы об­работки этих данных, то программист, использующий класс во внешних модулях, не заметит изменения структуры. Если в традиционном структурном программировании из­менение структуры данных приведет к необходимости пе­реработать практически все модули, использующие эту структуру, то в ООП переработка затронет только методы класса. Таким образом, ООП является расширением кон­цепции структурного программирования.

Базируется ООП на следующих основных принципах:

· инкапсуляция (описана выше),

· наследование,

· полиморфизм (многообразность),

· в последнее время к основным понятиям относят скрытие данных

Механизм наследования позволяет использовать струк­туры данных и методы уже разработанного класса в но­вых классах, которые имеют много общего со старым, но отличаются от него некоторыми деталями. Старый явля­ется родительским классом, а новый — дочерним классом. Если бы при создании нового класса все приходилось бы начинать с нуля, то эффективность использования клас­сов могла быть поставлена под сомнение. Однако, постро­ив генеалогическую структуру реальных объектов, выде­лив их общие стороны и отличия, программист может программно реализовать эту структуру благодаря насле­дованию. При этом для дочернего класса он опишет толь­ко его отличительные признаки, а все общее дочерний класс автоматически «заимствует» у родительского.

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


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



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