|
Что такое
объектно-ориентированное программирование?
Языки
программирования претерпели большие изменения с тех пор, как в сороковых
годах началось их использование.
Первые языки
программирования были очень примитивными и представляли собой
последовательность нулей и единиц. Использование таких языков было крайне
неудобно с точки зрения программиста. Первая попытка оптимизации
программирования в двоичных кодах заключалась в разработке специальной
системы кодирования двоичных машинных команд многобуквенными мнемоническими
сокращениями.
В пятидесятых
годах появились языки программирования высокого уровня. Форма записи
программ на на них по сравнению с машинными языками и
ассемблером ближе к традиционной математической форме и разговорному
языку.
Первые программы
для ЭВМ редко превышали объем 1 кбайт, сейчас же программы несравненно
больше. По мере увеличения размера программ приходилось искать способы
позволяющие упростить программирование.
Идеи разделения
программ на относительно самостоятельные крупные части, реализующие
определенные процедуры и функции и образующие определенную иерархию
взаимосвязей, нашли отражение в структурном подходе к разработке и созданию
программных средств. В программировании структурный подход появился с
возникновением первых подпрограмм (процедур и функций), написанных в так
называемом процедурно-ориентированном стиле.
Дальнейшее
развитие структурного подхода привело к модульному программированию. Оно
предусматривает представление прикладной задачи в виде иерархии
взаимодействующих модулей или программ.
Введение типов
данных обозначило еще одно направление развития технологии программирования.
Типизация данных предназначена как для облегчения составления программ, так
и для автоматического выявления ошибок. Использование структурных или
комбинированных типов позволяет сократить объем рутинной работы работу
программиста.
По мере развития
технологии программирования все адекватнее отражалась структура решаемой
прикладной задачи и осуществлялось объединение данных и процедур для их
обработки. Это и привело к появлению в программировании объектного подхода.
Сейчас уже совершенно ясно, что на смену традиционному программированию,
пришло объектно-ориентированное (сокращенно ООП).
Объектно-ориентированные языки программирования пользуются в последнее время
большой популярностью среди программистов. Первый объектно-ориентированный
язык программирования был разработан в конце 60-х годов в Норвегии. Авторы
этого языка очень точно угадали перспективы развития программирования: их
язык намного опередил свое время. В 70-е годы было разработано большое число
экспериментальных объектно-ориентированных языков программирования. Эти
языки так и остались экспериментальными, но в результате их исследования
были разработаны современные объектно-ориентированные языки
программирования. Разработка новых объектно-ориентированных языков
программирования продолжается.
Успех ООП стиля
программирования объясняется предоставляемой им возможностью естественно
имитировать объекты нашего мира. Решая сложные проблемы, выдвигаемые жизнью,
человек постепенно развил в себе замечательные способности к обобщению,
классификации и созданию абстракций. В окружающих нас объектах мы находим
общие признаки, свойства, способы поведения.
Объекты
объединяются в классы. К одному классу принадлежат объекты с одинаковым
набором свойств, методов и событий.
Представьте
себе, что в обычном языке не существует объектов (понятий), абстрагирующих
окружающий мир. Тогда для того, чтобы сообщить другому человеку о каком-то
предмете, например автомобиле, пришлось бы его подробно описывать. Трудно
вообразить, сколько времени потребовалось бы для описания объекта. Причем
описание должно быть очень точным, чтобы не возникло ошибочное представление
о другом объекте.
То же относится
и к программированию. Например, для использования окна ничего не нужно
разрабатывать, вы просто используете объект класса "окно". Класс - это
группа объектов с одинаковыми свойствами и методами. Если вы создаете
собственное приложение, то большую помощь при этом окажут собственные
объекты. В исходном коде вы используете программное представление таких
объектов. Такой способ рассмотрения больше соответствует реальности, чем при
чисто процедурной разработке приложений.
В
объектно-ориентированном подходе к разработке программ центральным является
понятие класса объектов. В ООП класс обладает следующими важнейшими
свойствами:
·
инкапсуляция
(Характеристики объекта и методы (процедуры и функции) для их обработки
объединяются в описании класса объектов, причем предполагается что доступ к
характеристикам объекта будет происходить через соответствующие методы, т.е.
они защищены от внешнего вмешательства);
·
наследование (Один
класс может быть получен от другого. В в таком случае говорят, что один
класс является базовым, а другой - производным. Это позволяет повторно
использовать уже созданный код в других проектах. Производный класс
наследует всю структуру характеристик и поведение базового, однако может
дополнять или модифицировать их.);
·
полиморфизм
(Полиморфизм означает, что различные объекты используют одинаковую
абстракцию, т.е. могут обладать свойствами и методами с одинаковыми именами.
Однако обращение к ним будет вызывать различную реакцию для различных
объектов. Большое достоинство полиморфизма состоит в том, что при
использовании объекта можно вызывать определенное свойство или метод, не
заботясь о том, как объект выполняет задачу. Это очень важно при модификации
программного обеспечения. Изменения или новшества просто адаптируются к
имеющимся компонентам приложения.).
|