Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структурные особенности Visual Basic.docx
Скачиваний:
44
Добавлен:
17.11.2019
Размер:
2.86 Mб
Скачать

3. Четыре принципа объектно-ориентированного программирования. Их реализация в Visual Basic.

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

Как уже упоминалось в первой главе, Visual Basic, в определен­ной степени, относится к объектно-ориентированным языкам прог­раммирования. ООП – это методология разработки программ, основанная на представлении ее в виде совокупности объектов, каждый из которых является реализацией определенного класса. В ООП объект представляет собой элемент приложения, например, лист, форму, меню. Программный код и данные структурируются так, чтобы имитировалось поведение фактически существующих объектов. Принадлежность языка программирования к ООП определяется использованием в нем четырех основных принципов: абстрагирования, инкапсуляции, наследования и полиморфизма.

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

· Инкапсуляция – это возможность эффективно изолировать данные, методы и свойства от остальной части программы и от случайного разрушения извне.

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

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

4. Классы. Интерфейс классов. Создание динамических библиотек на основе классов в Visual Basic. Регистрация библиотек.

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

Чтобы создать модуль класса, следует воспользоваться командой Project\Add Class Module. В отрывшемся диалоге Add Class Module на закладке New выбрать шаблон Class Module (для создания пустого окна модуля класса и заполнения его самостоятельно пользователем) или шаблон VB Class Builder (для запуска мастера классов, рис.85). Мастер классов может быть установлен в виде команды меню VB (Add-Ins\Class Builder Utility), если предварительно загрузить утили­ту VB6 Class Builder Utility в память, используя диалог Add-InManager, открывающийся командой Add-Ins\Add-InManager. Для редактирования существующих классов используется любой из двух последних способов.

Находясь в диалоге Class Builder с помощью команды File\New\ Class следует задать имя класса в поле Name, а в списке Base on – имя класса родителя (принцип наследования). После чего появится возможность создавать свойства (Property), методы (Method), события (Event) и структуры целочисленных кон­стант (Enum). Кроме классов мастер может создавать семейства (Collection).

При создании свойств VB использует процедуры свойств (Property), которые во многом похожи на общие процедуры (Sub) и функции (Function). Чтобы они были видимы в пределах контейнера, их сле­дует объявить как Public.

Вы уже знаете, что значе­ния свойств можно как счи­тывать, так и устанавливать, поэтому для одного свойства требуется две процедуры с одним и тем же именем: одна для чтения, другая для записи значения в свойство. Для этого в заголовке процедур Property используются ключевые слова Let (присвоить) и Get (получить). Разделение процедур свойств на процедуры присваивания и процеду­ры считывания позволяет создавать свойства, доступные только для чтения или только для изменения (принцип инкапсуляции). Мастер классов (Class Builder) позволяет добавлять свойства к существую­щему классу с помощью команды File\New\Property (рис.86) или кнопки . В этом окне следует задать имя, тип данных и доступ­ность свойств. Если будет установлена одна из опций Public Property или Friend Property, то мастер, после выполнения команды File\ Update Project, добавит в модуль класса три процедуры Property (Let, Get и Set), а также внутреннюю переменную для хранения зна­чения свойства. Например, окно класса после создания свойства с именем CurX типа Variant будет содержать следующий код.

Private mvarCurX As Variant 'local copy

Public Property Let CurX(ByVal vData As Variant)

'Syntax: X.CurX = 5

mvarCurX = vData 'Обновить значение временной переменной

End Property

Public Property Set CurX(ByVal vData As Variant)

'Syntax: Set x.CurX = Form1

Set mvarCurX = vData

End Property

Public Property Get CurX() As Variant

'Syntax: Debug.Print X.CurX

If IsObject(mvarCurX) Then

Set CurX = mvarCurX

Else

CurX = mvarCurX 'Обновить свойство CurX

End If

End Property

Здесь объявлена локальная переменная mvarCurX в стиле Венгерской нотации. Процедура Property Get по синтаксису является функцией, поскольку возвращает результат в имени, при этом она имеет тот же тип данных, что и параметр, в процедуре Property Let. Существует еще и процедура Property Set, аналогичная Property Let, только она передает не значение свойства, а ссылку на объект. Здесь перед оператором присваивания явно указывается ключевое слово Set (для ссылок на объект, находящихся как на форме, так и за ее пределами).

Если для какого-либо свойства Вы определили один из следующих типов данных: Object, StdFont, StdPicture, то Мастер классов создаст две процедуры свойств Set и Get. Если же тип данных у свойства будет числовой, логический или дата, то – две процедуры свойств Let и Get. И лишь когда тип данных у свойства будет Variant, Мастер классов создаст все три процедуры.

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

Методы используются для расширения функциональных возмож­ностей объекта и имеют синтаксис процедур и функций. С помощью команды File\New\Method или кнопки Мастера классов можно добавить методы. Обычно они содержат больше программного кода, чем процедуры свойств, так как в них выполняется обработка данных. Сложные по структуре методы можно разделить и объявить каждую его часть как Private, то есть для внутреннего использования в классе и, тем самым, защитить весь код. Такое разделение отвечает принципу инкапсуляции методов ООП.