Читайте также:
|
|
Другой тип модулей, заслуживающий нашего внимания, — модули классов, или просто классы. Классы представляют собой фундаментальные «строительные блоки» в так называемом объектно-ориентированном программировании (ООП). Одни и те же объекты используются на всех стадиях разработки проекта. Более подробная информация об ООП приведена в уроке 15.
Классы позволяют выделить часть функциональных возможностей программы в один объект, что облегчает проектирование и разработку программ. При оптимизации отдельных объектов снижается вероятность нежелательного влияния на другие фрагменты программы. В ООП объекты в первую очередь служат для моделирования реальных ситуаций.
Visual Basic позволяет вставлять классы в проект или компилировать их, превращая в элементы ActiveX — библиотеки динамической компоновки (DLL) или нестандартные элементы, которые раньше назывались OCX. Элемент ActiveX можно использовать в программе или внедрить в документ World Wide Web (обычно называемые документами HTML). Пример из урока 10, «Диалоговые окна», показывает, как создать класс нестандартного диалогового окна и откомпилировать его в ActiveX DLL. В уроке 17, «Использование ActiveX», приведена более конкретная информация по ActiveX. Как вы убедитесь, классы лежат в основе многих новых возможностей Visual Basic. А пока мы рассмотрим модули классов и их роль в ваших проектах, не вдаваясь в теоретические тонкости ООП.
Класс содержит свойства и методы, которые выполняют некоторые взаимосвязанные операции. Класс представляет собой самостоятельный фрагмент программы. Это означает, что класс можно перенести из одного проекта в другой, и он будет правильно работать без всяких модификаций. Объекты Visual Basic создаются на основе классов. Например, объект-кнопка на самом деле создается на основе специального класса. Кнопка будет работать в любом приложении, при этом ее не приходится изменять. Проектируемые вами классы должны вести себя так же.
Классы, как и стандартные модули, хранятся в отдельных файлах, однако они обязательно включают две процедуры — Class_Initialize() и Class_Terminate():
Процедура Class_Initialize() задает значения свойств по умолчанию или выполняет другие подготовительные действия. Например, созданный вами класс в начале работы может выводить диалоговое окно с сообщением или просматривать системный реестр в поисках некоторого параметра.
Процедура Class_Terminate() содержит код для выполнения завершающих действий. Возможно, ваш класс создает временные файлы на жестком диске -в конце работы их следует удалить. Для подобных действий и предназначена процедура Class_Terminate.
Методы
Методы классов выполняют почти те же задачи, что и процедуры модулей. Имя метода может иметь модификатор Private или Public в зависимости от его области видимости. Открытые (Public) методы образуют программный интерфейс класса, и программы могут работать с ними без всяких ограничений. Закрытые (Private) методы используются классами для выполнения внутренних операций, недоступных за пределами класса.
Примером закрытого метода может послужить метод для извлечения информации из базы данных персонала. Доступ к таким данным должен быть ограничен, поэтому они извлекаются закрытым методом. Затем вы можете написать открытый метод, внутри которого будет вызываться закрытый. Следующий пример — класс, имитирующий работу банкомата:
Private Function GetBalance(AccountNo As String) As Double
GetBalance = 10000000
End Function
Public Function DisplayAccountInfo(AccountNo As String, PIN As _
String) As Double
If AccountNo = "123456" And PIN = "5551289" Then
DisplayAccountlnfo = GetBalance(AccointNo)
End If
End Sub
Функция GetBalance объявлена закрытой, так как посторонним совершенно незачем знать о состоянии чужих счетов. Только представьте себе, как много друзей у вас появится, когда все узнают о вашем счете в 10 миллионов долларов! Чтобы ограничить доступ к информации, пользователь должен пройти через процедуру DisplayAccountlnfo. В этой процедуре перед получением информации о состоянии счета проверяются номер счета и личный идентификатор (PIN).
Дата добавления: 2015-07-20; просмотров: 76 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Ключевые слова Public и Private | | | Свойства |