Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_4_ООП_VBA.doc
Скачиваний:
24
Добавлен:
11.06.2015
Размер:
88.06 Кб
Скачать
  1. Объектно-ориентированное программирование на примере языка vba

    1. Основные понятия объектно-ориентированного программирования

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

Определение 1. Объект - совокупность свойств (параметров) определенных сущностей и методов их обработки (программных средств), т.е. объект– это нечто целое, объединяющее некоторые данные, чем можно управлять с помощью кода VBA. Например, любое приложение Windows – Word, Excel, Explorer и другие являются объектом языка, который называется Application (Приложение); окно программы – объект Windows; документ HTML – объект Document; диапазон ячеек в Excel – объект Range и т.д.

Объект содержит инструкции (программный код), определяющие действия, которые может выполнять объект, и обрабатываемые данные. Один объект может выступать объединением вложенных в него по иерархии других объектов. В частном случае, в VBA объектом являются элементы пользовательского интерфейса, которые создаются на Форме пользователя (UserForm) или на рабочем листе, а также рабочая книга и её элементы.

Объекты могут объединяться в классы, т.е. объект является экземпляром класса.

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

Определение 3. Свойство - характеристика объекта, его параметр.

Все объекты наделены определенными свойствами, которые в совокупности выделяют объект из множества других объектов. Свойства объектов различных классов могут "пересекаться", т.е. возможны объекты обладающие одинаковыми свойствами:

Одним из свойств объекта являются метод его обработки.

Определение 4. Метод - программа действий над объектом или его свойствами.

Метод рассматривается как программный код, связанный с определенным объектом; осуществляет преобразование свойств, изменяет поведение объекта. Объект может обладать набором заранее определенных встроенных методов обработки, либо созданных пользователем или заимствованных в стандартных библиотеках, которые выполняются при наступлении заранее определенных событий, например, однократное нажатие левой кнопки мыши, вход в поле ввода, выход из поля ввода, нажатие определенной клавиши и т.п.

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

Определение 5. Событие - изменение состояния объекта.

Внешние события генерируются пользователем (например, клавиатурный ввод или нажатие кнопки мыши, выбор пункта меню, запуск макроса); внутренние события генерируются системой.

Существуют различные объектно-ориентированные технологии и методики проектирования программных продуктов, которые должны обеспечить выполнение важнейших принципов объектного подхода:

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

  • Наследование – это возможность выделить свойства, методы и события одного объекта и приписать их другому объекту, иногда с их модификацией. Класс может иметь образованные от него подклассы. При построении подклассов осуществляется наследование данных и методов обработки объектов исходного класса. Механизм наследования позволяет переопределить или добавить новые данные и методы их обработки, создать иерархию классов. С точки зрения программиста, новый класс должен содержать только коды и данные для новых или изменяющихся методов.

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