Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Объектные переменные




Процедуры Property Let, Property Set и Property Get

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

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

Процедура Property Get обеспечивает возможность считывания значения свойств. Процедура Property Get является процедурой типа Function.

Процедуры Property Let, Property Set и Property Get имеют такую же структуру, что и обычные процедуры. Просто они предназначены для специфических задач, описанных выше.

Синтаксис процедуры Property Let:

[Public | Private] [Static] Property Let <имяПроцедуры> [(<списокАргументов>)] <операторы> [Exit Property] <операторы>End Property

Синтаксис процедуры Property Set:

[Public | Private] [Static] Property Set <имяПроцедуры> [(<списокАргументов>)] <операторы> [Exit Property] <операторы>End Property

Синтаксис функции Property Get:

[Public | Private] [Static] Property Get <имяФункции> [(<списокАргументов>)] [As <тип>] <операторы> имяФункции = возвращаемое значение [Exit Property] <операторы> имяФункции = возвращаемое значениеEnd Property

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

Если есть описания:

Dim Х As Т, Y As Т1

то без контекста понять нельзя, что такое Х и Y – "обычные" переменные или объекты. Например, если Т – тип, заданный пользователем, а Т1 – определенный им класс, то Х – это переменная, а Y – объект. Класс и тип – понятия, если не эквивалентные, то близкие по смыслу. Так же близки понятия объекта и переменной. Класс – это специальная форма определения типа. Если есть тип Т и класс Т1, то можно объявить произвольное число экземпляров типа Т и класса Т1. Экземпляры типа Т называются переменными, класса Т1 – объектами. Класс задает свойства, методы и события своих объектов. Тип всегда задает свойства, неявно – методы, но никогда – события.

В объявлении:

Dim Y As Т1

где Т1 – класс, объект Y мы часто называем переменной, говоря, что она имеет тип Object.

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

· создать новый объект, выделив ему память;

· сослаться на уже существующий объект.

Есть два способа связывания: раннее и позднее.

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

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

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

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

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

Например:

Dim Петров As Личность, Козлов As Личность

Это позволяет еще на этапе трансляции проверять, допустимы ли те или иные операции над объектами Козлов и Петров (описание класса Личность смотри в "Пользовательские классы"). Для программиста особенно важно, что при раннем связывании, когда задан класс объекта, в процессе работы с этим объектом идет подсказка о его свойствах и методах.

Теперь рассмотрим, как создаются новые объекты, и как происходит связывание с объектами, уже существующими. Для удобства разделим все объекты на три группы:

· пользовательские объекты, чей класс определен пользователем в одном из модулей класса; например, объекты класса Личность, созданного в предыдущей теме;

· объекты родного приложения (Excel, Word, PowerPoint и др. приложения Microsoft Office), которому принадлежит проект и которые доступны по умолчанию;

· ActiveX-объекты, в частности, объекты других приложений Microsoft Office при их подключении к исходному приложению. Например, в Word можно подключить объекты Excel, и наоборот, документы Word включить в рабочие листы Excel.




Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 875; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.