Иллюстрированный самоучитель по Outlook2002


Классы и объекты - часть 4


Синтаксически описания свойств и методов практически не отличаются от описания обыкновенных переменных и процедур. Случаи отличия или особенностей употребления будут оговорены отдельно.

Давайте рассмотрим работу с классами на примере класса Person.

Пример 20.1. Создание класса Person

> Insert > Class Module

Properties Name:= Person

Программа 20.21. Создание класса

Public name As String Private birthday As Date Private male As Boolean

Public Sub perslnit( Optional persName As String = "Novikov", Optional persBirth As Date = #10/10/511, Optional persMale As Boolean = True)

name = persName birthday = persBirth male = persMale End Sub

Public Sub persPrint ()

Dim str As String

str = "Person name is " & name & Chr(13) & Ilf(male,"He","She") & " was born in " & birthday

MsgBox(str) End Sub

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

{Dim | Private | Public} имяОбъекта As Object

Если вы обратитесь к таблице встроенных типов (табл. 20.4), то увидите, что для переменных данного типа отводится 4 байта, ровно столько, сколько необходимо для хранения адреса памяти. Конечно, ссылка сама по себе бессмысленна и ее, в конце концов, необходимо будет связать с реально существующим объектом посредством оператора присваивания set, но до этого нужно объявить объект. Синтаксис объявления объектов, класс которых определен пользователем, прост:




Начало  Назад  Вперед