Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция ППП 2012.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.6 Mб
Скачать

Создание объектных переменных

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

  1. явным указанием класса объекта;

  2. ссылкой на ранее созданный объект.

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

  1. При раннем связывании в момент объявления указывается класс объекта:

Dim <Переменная> As <классОбъекта>

Это позволяет еще на этапе трансляции проверять, допустимы ли те или иные операции над создаваемыми объектами.

  1. При позднем связывании переменная объявляется так:

Dim <Переменная> As Object

Это объявление говорит о том, что переменная является объектом (ссылкой), но ничего не сказано о классе этого объекта. Он выяснится только динамически при выполнении программы, когда <Переменная> будет связываться с только что созданным или существующим объектом того или иного класса. Поэтому такое связывание и называется поздним, или динамическим.

В целом же, объявление объектных переменных отличается от обычных только указанием ключевого слова New, с помощью которого создаваемому экземпляру класса (при раннем связывании) выделяется память и вызывается его конструктор. Объектные переменные могут быть объявлены и использованы в любых модулях (как в стандартных, так и модулях класса). Общий синтаксис объявления объектной переменной:

Private | Public | Dim <имяОбъектнойПеременной> As New <имяКласса>

Например:

Public Faculty As New CFaculty Private Groups(3) As New CGroup Dim stud As New CStudent

Использование раннего связывания имеет одно преимущество: явное указание класса позволяет получить доступ к его свойствам и методам уже на этапе разработки в VBE. Это выражается в том, что при введении имени объектной переменной появляется всплывающий список доступных операций над объектом.

Использование объектов

Для обращения к свойствам или методам экземпляра класса в VBA используется точечная нотация:

перем = <имяОбъектнойПеременной>.<Свойство> ' чтение свойства

Или:

<имяОбъектнойПеременной>.<Свойство> = значение ' запись свойства

Для обращения к объектным свойствам следует использовать ключевое слово Set. Вызов методов и передача параметров аналогичны работе с обычными процедурами и функциями. Примеры работы с экземплярами созданных классов - в листинге 26.

Листинг 26. Работа с объектами

' ------------------------------------------------------------------ ' Создание экземпляра класса и работа с его свойствами и методами ' ------------------------------------------------------------------

Sub sample30() Dim stud As New CStudent ' экземпляр класса

CStudent ' Обращения к свойствам объекта

stud.FirstName = "Иван"

stud.LastName = "Петров"

stud.Contacts = "г.Омск, пр.Мира, 11, к.8. т/ф (3812) 65-96-11" End Sub