Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Базовые понятия ООП

Объектно-ориентированное программирование

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

Необходимо различать класс, то есть тип объектов и реализацию класса, то есть собственно объект. Описать объект, значит описать класс (тип). Создать объект, значит создать экземпляр заданного типа.

Базовые понятия ООП – инкапсуляция, наследование и полиморфизм.

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

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

Между классами объектов могут быть два отношения: is-a "это есть", is-a-part "это есть часть". Наследование – предполагает, что свойства родительских объектов наследуются дочерними объектами, связанными по отношению "это есть". Это свойство очень важно, так как помогает существенно сократить список свойств, определяющих один объект (экземпляр).

В VBA реализовано отношение "это есть часть", наследования почти нет. Мы употребили странное определение "почти", так как, не смотря на заявление о том, что наследование не поддерживается, реально трудно было без него обойтись, поэтому оно есть, например кнопка (класс CommandButton) наследует свойства элемента управления (класса Сontrol). Объектные модели, представленные в справочнике по VBA – модель объектов согласно иерархии "это есть часть".

Обращение к объектам и свойствам обычное (через точку): имя_объекта.имя_свойства.

Спуск по объектной модели – дорогая (по затрачиваемому времени и занимаемой памяти) операция. Есть способ зафиксировать верхнюю часть объекта с помощью конструкции "With … End With" и тем самым избавиться от спуска, то есть ускорить работу программы. Кроме того, этот способ позволяет увеличить наглядность программного кода.

Пример:

Исходный текст:

UserForm1.Controls(i).width = UserForm1.Controls(i).width+20

UserForm1.Controls(i).height = UserForm1.Controls(i).height+10

Лучше написать так:

With UserForm1.Controls(i)

.width =.width+20

.height =.height+10

end with

<== предыдущая лекция | следующая лекция ==>
Динамические массивы | 
Поделиться с друзьями:


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


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



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




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