Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Робота з модулями класів
Інший тип модулів, що заслуговує на нашу увагу, - модулі класів, або просто класи. Класи є фундаментальними " будівельними блоками" в так званому об'єктно-орієнтованому програмуванні (ТОП). Одні і ті ж об'єкти використовуються на всіх стадіях розробки проекту. Детальніша інформація про ТОП приведена в уроці 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).
|