|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Передача параметровЧтобы процедура работала с различными исходными данными, ей можно передавать параметры, которые также иногда называются аргументами. Передача параметров функциям имеет очевидный смысл: вы хотите, чтобы функция выполняла одни и те же действия с разными данными. Сказанное относится и к процедурам, за одним исключением: процедура не возвращает значения. Одну и ту же процедуру можно вызывать снова и снова, что становится первым шагом на пути к повторному использованию кода. Чтобы лучше понять, как работает этот механизм, представьте себе соковыжималку. Все, что она умеет делать, — выжимать сок из фруктов и овощей. Положите в нее морковку, и вы получите морковный сок. Положите апельсин — и получит- ся апельсиновый сок. Замените соковыжималку некоторой функцией, «положите» в нее некоторый параметр, и вы получите соответствующий тип сока, то есть результат. Любую процедуру или функцию следует свести к выполнению конкретной задачи. Эта задача может состоять из нескольких подзадач, но все они работают вместе и дают общий результат. Например, следующая процедура изменяет свойство формы Caption: 1. Создайте новый проект типа Standard EXE. 2. Поместите кнопку на форму Form"). Задайте ее свойству Name значение cmdCaption, а свойству Caption — значение Изменить заголовок.
Private Sub AlterCaption(X As String) Caption = X End Sub
Процедуре передается всего один аргумент — X. Его имя не имеет никакого значения, однако процедура будет правильно работать лишь в том случае, если ей будет передано строковое (текстовое) значение. Например, вы можете создать строковую переменную с именем MyTitleText и присвоить ей значение Новый заголовок, после чего передать MyTitleText в качестве параметра процедуры. Другими словами, процедуре можно передать имя строковой переменной или обычный текст, заключенный в кавычки (строковую константу).
Параметры, передаваемые функциям, должны заключаться в скобки. Параметры процедур в скобки не заключаются. Кроме того, если передается несколько параметров, их следует разделять запятыми. Например, у вас имеется процедура CreateUser, которая получает два параметра — имя пользователя и пароль. Ее вызов в программе может выглядеть следующим образом:
CreateUser "Джон Доу", "123456"
Или
Dim UserlD As String Dim Password As String
UserlD = "Джон Доу" Password = "123456"
CreateUser UserID, Password
В первом случае нужные значения параметров передаются процедуре напрямую — это называется «жесткое кодирование». Хотя этот вариант возможен, при создании нескольких пользователей в программе появится много лишних строк. Альтернативный вариант — использовать переменные, присвоить им нужные значения и один раз вызвать процедуру (как это сделано во втором примере). Кроме того, можно создать специальную функцию, которая будет проверять комбинацию имени и пароля пользователя и возвращать значение, определяющее правильность данных. Например, это может выглядеть так:
Dim UserlD As String Dim Password As String UserlD = "Джон Доу" Password = "123456" If ValidUser(UserID, Password) = True Then ‘Сделать что-то полезное Else ‘Вывести сообщение об ошибке End If
19. Методы, свойства и события модулей классов.
Классы представляют собой фундаментальные «строительные блоки» в так называемом объектно-ориентированном программировании (ООП). Одни и те же объекты используются на всех стадиях разработки проекта Классы позволяют выделить часть функциональных возможностей программы в один объект, что облегчает проектирование и разработку программ. При оптимизации отдельных объектов снижается вероятность нежелательного влияния на другие фрагменты программы. В ООП объекты в первую очередь служат для моделирования реальных ситуаций. Visual Basic позволяет вставлять классы в проект или компилировать их, превращая в элементы ActiveX — библиотеки динамической компоновки (DLL) или нестандартные элементы, которые раньше назывались OCX. Элемент ActiveX можно использовать в программе или внедрить в документ World Wide Web (обычно называемые документами HTML). Класс содержит свойства и методы, которые выполняют некоторые взаимосвязанные операции. Класс представляет собой самостоятельный фрагмент программы. Это означает, что класс можно перенести из одного проекта в другой, и он будет правильно работать без всяких модификаций. Объекты 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).
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |