Файл: Освой самостоятельно программирование для MS Access 2002 за 24 часа [П.Киммел].pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.10.2020

Просмотров: 7909

Скачиваний: 25

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

background image

 час

Основы

программирования классов

Вам наверняка уже доводилось видеть и слышать много разной информации об

объектно-ориентированном программировании (нет, не только на страницах нашей

 До сих пор мы пользовались классами, которые были созданы другими

людьми. Класс — это расширенный пользовательский тип данных. Экземпляр класса

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

ориентированного программирования; не будь классов, термин

 объектно-

ориентированный

 лишился бы своей главной части —

 Впрочем, несмотря

на зловещее название, которое не обещает новичку спокойной жизни, за этой терми-

нологией не скрывается ничего чрезмерно сложного и недоступного для понимания.

Очень скоро (думаем, к концу этого занятия) вы определенно научитесь создавать

собственные классы — более того, вы, по существу, узнаете, как писать объектно-

ориентированные программы.

Понятие объекта основывается на реалиях окружающей жизни. В самом деле, объекты

настолько

 что создатели большинства языков программирования уже обеспечили

их средствами поддержки объектно-ориентированной парадигмы либо настойчиво к этому

стремятся. Даже дедушка COBOL — и тот, прихрамывая на обе ноги, желает поспеть за

своими молодыми и более резвыми конкурентами. Объектно-ориентированный стиль дает

в руки программистов мощные орудия, позволяющие справляться с задачами, сложность

которых — в угоду требованиям эпохи — неуклонно возрастает.

Объектно-ориентированное программирование далеко не так страшно, как кажет-

ся. Просто оно требует некоторой подготовки — частично по той причине, что чело-

веку приходится отвыкать от стереотипов. Если же вы ранее вообще не занимались

программированием, считайте, что вам крупно повезло, поскольку переучиваться и

ломать привычный ход мыслей попросту незачем.

Основные темы занятия.

• Почему объектный подход так важен и ценен.
• Еще раз о терминах объектно-ориентированного программирования.
• Создание новых классов и расширение возможностей существующих.
• Отладка объектного кода в среде Access 2002.


background image

В чем состоит важность объектного

подхода

Прежде чем привести аргументы в пользу важности объектно-ориентированной

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

До возникновения "объектных" идей в индустрии программирования господство-

вал так называемый

 структурный

 подход, который был обязан своим появлением (так

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

 процесс.

 Решая задачу, программист определял множество данных и про-

цессов их обработки.

Процедуры и данные никак не соотносились друг с другом — кроме, пожалуй, тех

ситуаций, когда процедура и порция данных в какой-то момент времени выполнения
программы "соприкасались" для осуществления конкретной операции. После опреде-
ления множества процессов и круга необходимых данных создавались процедуры,
поддерживавшие выполнение отдельных процессов. Затем строилась "главная" проце-
дура, из которой вызывались вспомогательные, решавшие частные задачи в рамках
общей проблемы. Все это именовалось

 потоком вычислений.

Структурное программирование поддерживалось средствами структурного проек-

тирования. На этапе структурного проектирования предполагалось построение

 блок-

 в которых с помощью специальных символов отображался каждый конкретный

процесс с учетом его места в общем потоке вычислений.

Сторонники структурного подхода столкнулись с трудностями, порожденными

чрезвычайной сложностью задач, которые предстояло решать. Крупное приложение
могло содержать в своем составе тысячи процедур и функций, а языки структурного
программирования, такие как С и Basic (предшественники Visual Basic), не поддержи-
вали развитых средств агрегации кода. (Помните, мы как-то говорили о любви? Нет,
конечно, о любви всегда приятно поразмышлять, но тогда речь шла, простите за про-
зу, об агрегации понятий.)

Впрочем, еще до появления объектно-ориентированных систем программисты

осознали необходимость агрегации данных в более крупные структуры — типы, опре-

деляемые пользователем. Агрегатный тип позволяет связать в единую целостную сущ-

ность несколько разнородных порций данных. Программисты, кроме того, уяснили
(что в настоящее время для нас совершенно естественно) и полезность агрегации
строк кода в именованные блоки-процедуры, позволяющие упростить структуру про-
граммы и уменьшить ее объем. Агрегатные типы данных и процедуры (функции) со-
ставили основу структурного подхода к программированию, но некоторые принципи-
альные моменты все равно остались за пределами изучения.

Программирование все более тяготело к решению задач, настолько же сложных, как и

мир, который нас окружает. Физический мир состоит из "вещей". Каждая "вещь" харак-

теризуется определенными атрибутами, описывающими ее структуру и особенности пове-
дения. Человек — это, в известном смысле, одна из

 физического мира. Челове-

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

Однако отдельно взятые процедуры и данные не в состоянии обеспечить полно-

ценных средств описания вещей. Ученые-естествоиспытатели доказали, что физиче-
ский мир (вероятно, самая сложная из всех сущностей) не может быть описан набо-

ром процессов — мир состоит из взаимодействующих между собою вещей. Это об-
стоятельство заставило задуматься и математиков, которые вполне обоснованно реши-

382 Часть VIII. Объектно-ориентированное программирование в Access


background image

ли, что языки программирования должны поддерживать средства создания абстрак-

ций, описываемых множествами свойств и способных к

 Подобные

системы программирования получили название

Развитие компьютерной науки и индустрии доказало правоту кибернетиков-

первопроходцев. Сложная программа становится более управляемой, если написана в

объектно-ориентированном стиле. Впрочем, плохие образцы объектного кода — как и

любая другая плохо выполненная работа — не станут лучше от того, что мы назовем

их модным словечком.

Не все программисты работают сейчас в объектном стиле, но подавляющее боль-

шинство новых проектов создается на языках, в которых поддерживаются средства

объектно-ориентированного программирования. Пока еще отдельные компании (по
крайней мере, так было в

 году) еще не могут оценить всех достоинств новых

технологий. Что ж, это их воля. Объектно-ориентированный подход к программиро-

ванию остается в силе, он может развиваться, изменяться, но уже не будет отброшен,

и компьютерная индустрия никогда не повернет вспять, к прошлому.

Уделите особое внимание этой главе — пользу гарантируем. Прежде чем продол-

жить, несколько советов. Избегайте построения объектов просто так, без особой

 то

нужды. Сосредоточьте внимание на сущности проблемы, а не на количестве классов,

которые вы построили или, наоборот, не построили. Примите к сведению, что хоро-

ший объектно-ориентированный "блин" редко удается с первого раза уберечь от пре-

вращения в "ком". Качественные результаты достигаются только в процессе практи-

ки — непрерывной и, может быть, даже утомительной.

В первый раз — первый класс

Работа с модулем класса ничем не отличается от привычных приемов использова-

ния обычных модулей. Единственная особенность состоит в том, что законченные

фрагменты кода обычных модулей независимы, а содержимое модуля класса трактует-

ся Access как единое целое. Чтобы использовать класс в программе, необходимо по-

строить экземпляр (объект) класса.

Вы уже осведомлены о том, как создаются объекты классов. Еще раз воспроизве-

дем пример из главы "13-й час. Коллекции данных":

Dim Strings As New Collection

В приведенной строке кода объявляется и создается экземпляр класса Collection под

названием strings. Это и есть объект класса. Вводя код в модуле класса, вы определяете
структуру класса. Чтобы построить простой класс, выполните следующие действия.

 Создайте новую или откройте существующую базу данных.

2. Выберите элемент Модули (Modules) в списке Объекты (Objects) окна База данных

(Database) и щелкните на кнопке Создать (New) панели инструментов.

3. Введите текст листинга

 в окне нового модуля.

4. Сохраните модуль под именем Test.

5. Не закрывая окна редактора, выберите в строке меню команду

 Module,

чтобы создать новый модуль класса и добавить его в базу данных.

6. Введите текст листинга 21.2 в окне нового модуля класса.
7. Сохраните модуль под именем FirstClass.
8. Выберите в строке меню окна редактора команду

 чтобы перейти к

окну модуля Test.

9. Выполните процедуру

 — откроется окно, содержащее сообще-

ние В первый раз

21-й час. Основы программирования классов 383


background image

Листинг

 Процедура для тестирования класса, описанного в листинге 21.2

Option Compare Database

Sub

Dim MyFirstClass As New FirstClass

Set MyFirstClass = Nothing

End Sub

Анализ

I Листинг

 содержит текст простой процедуры, в строке 3 которой соз-

| дается объект MyFirstClass класса FirstClass, а далее, в строке 4, вы-

зывается метод Greetings этого класса. Директива строки 5 освобождает
фрагмент памяти, выделенный для хранения объекта. Обратите внима-

ние, что имя объекта (MyFirstClass) отделяется от названия его метода

(Greetings) оператором точки

Листинг 21.2 демонстрирует содержимое модуля класса.

Листинг 21.2. Содержимое модуля класса

 Option Compare Database

2 : Sub

 )

 MsgBox "В первый раз — первый

 End Sub

В VBA все члены класса содержатся в одном модуле. Модуль класса

создается при выборе в строке меню окна редактора команды

Class Module.

| Листинг 21.2 представляет код класса FirstClass. Любой код, содержа-

щийся в модуле класса, становится неотъемлемой частью класса. Постро-

енный нами класс FirstClass весьма прост: он содержит единственный
метод — процедуру Greetings.

Несмотря на то, что первый класс, FirstClass, нельзя назвать особенно полезным с

практической точки зрения, формально он верен и может использоваться в качестве ру-

ководства по построению других, более реальных и сложных классов. Чтобы приступить

к созданию нового класса, достаточно обратиться к окну редактора Microsoft Visual Basic

и выбрать в строке меню команду

 Module, которая приводит к открытию

окна нового модуля. Теперь, работая в окне модуля класса, вы можете действовать в той

же манере, как и при написании обычного — не объектно-ориентированного — кода.

Наиболее существенное различие подходов состоит в том, что, намереваясь включить

определенный код в состав класса, вы должны поместить его в соответствующий мо-

дуль — и код станет естественной частью интерфейса класса.

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

кратко осветить проблему обеспечения доступа к членам классов.

Сокрытие

Слыхали ли вы когда-нибудь фразу:

 Слишком много

 Да, временами

бывает, что излишек информации определенно вреден. Вообразите на мгновение, что

для обеспечения жизнедеятельности своего организма вы должны будете отдавать

мысленные приказы типа "Желудок, дружище, займись-ка перевариванием передан-

384

Часть VIII. Объектно-ориентированное программирование в Access