Тема 10. Объектно-ориентированное программирование (ООП)

Практика программирования показывает, что структурный подход (основными идеями которого являются структурное кодирование[1], модульное программирование[2] и нисходящее проектирование) позволяет получать достаточно надежные программы, размер которых не превышает 100 000 операторов. Узким местом модульного программирования является то, что ошибка в интерфейсе при вызове подпрограммы (функции) выявляется только при выполнении программы (из-за раздельной компиляции модулей обнаружить эти ошибки раньше невозможно). При увеличении размера программы обычно возрастает сложность межмодульных интерфейсов, и с некоторого момента предусмотреть взаимовлияние отдельных частей программы становится практически невозможно. Для разработки программного обеспечения большого объема было предложено использовать объектный подход.

В 1980 году было официально объявлено о создании языка Smalltalk-80, разработанного в научно- исследовательском центре фирмы Xerox. Этот язык поддерживал абсолютно новую по тому времени концепцию объектно-ориентированного программирования. Он стал родоначальником существующих языков программирования этого класса.

Основная идея объектно-ориентированного программирования состоит в том, что реальные объекты обладают двумя базовыми характеристиками: имеют набор свойств и определенное поведение (т.е. способны разными методами изменять эти свойства и реагировать на события, возникающие как внутри, так и вне объекта).

Объекты, имеющие идентичную структуру и отличающиеся значениями свойств, объединяются в классы. Каждый конкретный объект является экземпляром класса.

Приведем основные положения ООП, предложенные Аланом Кейем.

- Все является объектом.

- Вычисления осуществляются путем взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некое действие. Объекты взаимодействуют, посылая и получая сообщение. Сообщение - это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия.

- Каждый объект имеет независимую память, которая состоит из других объектов.

- Каждый объект является представителем класса, который выражает общие свойства и общее поведение объектов.

- В классе задается поведение (функциональность) объекта. Тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия.

- Классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования. Память и поведение, связанное с экземплярами определенного класса, автоматически доступны любому классу, расположенному ниже в иерархическом дереве.


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



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