Полиморфизм

Наследование

Инкапсуляция

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

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

Данные и методы используются для определения содержания и возможностей объекта. Например, окружность описывается координатами центра и радиусом. Кроме того, над окружностью можно проделывать различные действия (методы), вычислять ее длину и площадь ограниченного ею круга, проверить, находится ли некоторая точка внутри данной окружности.

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

Наследование позволяет создавать новые классы, повторно используя уже готовый исходный код и не тратя времени на его переписывание.

Наследование — это свойство классов создавать из базовых классов производные, которые наследуют свойства базовых классов и могут содержать новые элементы данных и методы. Наследование позволяет создавать иерархии классов и является эффективным средством внесения изменений и дополнений в программы.

Например, класс «животное», имеет свойства «название», «размер», «методы», «идти», «размножатся» Созданный на его основе класс «кошка» содержит все эти свойства и методы, к которым дополнительно добавляется свойство «окраска» и метод «пить».

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

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

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

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

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

В рамках Deiphi свойство класса определяется набором входящих в него методов. Изменяя алгоритм того или иного метода в потомках класса, программист может придавать этим потомкам отсутствующие у родителя специфические свойства. Для изменения метода необходимо «перекрыть» его в потомке, т.е. объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате в объекте - родителе, объекте - потомке будут действовать два одноименных метода, имеющие разную алгоритмическую основу и, следовательно, придающие объектам разные свойства. Это и называется полиморфизмом объектов.

Идеи ООП проникли во многие процедурные языки. Например, в состав интегрированной системы программирования Паскаль (кор­порации Borland International), начиная с версии 5.5, входит специ­альная библиотека ООП Turbo Vision.

С середины 90-х гг. многие объектно-ориентированные языки реализуются как системы визуального программирования. Такие систе­мы имеют интерфейс, позволяющий при составлении текста про­граммы видеть те графические объекты, для которых она пишется. Отличительной особенностью этих систем является наличие в них среды разработки программ из готовых «строительных блоков», по­зволяющих создавать интерфейсную часть программного продукта в диалоговом режиме, практически без написания программных опе­раций. Система берет на себя значительную часть работы по управ­лению компьютером, что делает возможным в простых случаях об­ходиться без особых знаний о деталях ее работы. Она сама пишет значительную часть текста программы: описания объектов, заголов­ки процедур и многое другое. Программисту остается только вписать необходимые строчки, определяющие индивидуальное поведение программы, которые система не в состоянии предвидеть. Но даже в этих случаях система сама указывает место для размещения таких строк. К объектно-ориентированным системам визуального проек­тирования относятся: Visual Basic, Delphi, C++ Builder, Visual C++. Это системы программирования самого высокого уровня.

VBA (Visual Basic for Application) является общей языковой плат­формой для приложений Microsoft Office (Excel, Word, Power Point и др.). VBA соблюдает основной синтаксис и правила программирова­ния языков Бейсик-диалектов. VBA помогает довольно сильно рас­ширить возможности приложений за счет написания макросов — программ, предназначенных для автоматизации выполнения многих операций. VBA позволяет создавать объекты управления графичес­кого интерфейса пользователя, задавать и изменять свойства объек­тов, подключать к ним необходимый для конкретного случая про­граммный код. С помощью VBA можно производить интеграцию между различными программными продуктами. Программы на язы­ке VBA для приложений создаются двумя способами: в автоматическом режиме как результат построения клавишной макрокоманды или путем написания программного кода.

 

Контрольные вопросы

1. Что такое машинный код?

2. Охарактеризуйте язык Ассемблер.

3. Дайте определения понятиям «алфавит», «словарный запас», «грамматика», «синтаксис», «семантика».

4. Чем отличаются языки низкого уровня от языков высокого уровня?

5. Назовите принципы структурированного программирования и охарактеризуйте их.

6. Перечислите свойства языков программирования.

7. Дайте классификацию языков программирования.

8. Охарактеризуйте основные конструкции программирования.

9. Перечислите инструкции в Visual Basic.

10. Назовите типы переменных в Visual Basic.

11. Как происходит объявления переменных в Visual Basic?

12. Опишите константы в Visual Basic.

13. Какие парадигмы программирования Вы знаете?

14. Дать характеристику императивным языкам.

15. Опишите языки функционального программирования.

16. Охарактеризуйте декларативные языки программирования.

17. Что лежит в основе объектно-ориентированного программирования?

18. Дать понятия «объект», «свойства», «методы» и «события».

19. На каких принципах базируется объектно-ориентированное программирование? Дать им характеристику и привести примеры.

20. Что за системы визуального программирования?