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

Когда повторяющийся в программе кусок текста содержит подпрограмму и/или описание переменных и массивов, невозможно использовать методы сокращенного программного текста, такая ситуация обычно возникает, когда повторяющиеся описания переменных означают свойства каких-либо похожих объектов, а подпрограмма – некоторые действия, которые нужно произвести с этими объектами. В этом случае можно вынести описание общих свойств объектов и одинаковых действий (методов, свойств) в виде описания класса объектов. Имя класса при этом можно использовать при описании переменных, чтоб указать, что данная переменная будет ссылаться на объект этого класса. Такое описание объектной переменной нужно оставить в основной программе, на месте каждого повторения одинакового куска текста. В исходной программе похожие переменные и подпрограммы должны были, меть разные имена. В описании класса они вынесены в одном экземпляре, поэтому имя объектной переменной используется для отличия их друг от друга, оно записывается перед именем повторяющейся переменной.

Dim ростКоли as singl, возрастКоли as integer

Dim ростПети as singl, возрастПети as integer

Sub д р Коли ()

Рост Коли = рост Коли + 5

Возраст Коли = возраст Коли + 1

Endsub

Sub д р Пети ()

Рост Коли = рост Коли + 5

Возраст Коли = возраст Коли + 1

Endsub

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

Сложную программу могут писать несколько программистов, или один но долго, при этом есть опасность, что в разных частях программы различные величины (значения) могут быть обозначены одинаково, например, Х будет обозначать координату объекта, а в др. части при определении, например, площади этого объекта, она как неизвестная величина также будет обозначена Х. Тогда после вычисления площади Х примет др. значение и, следовательно, координата объекта также изменится, хотя и не планировалось. Чтобы избежать таких ситуаций современные языки программирования четко выделяют части программы, в которых указанное буквенное обозначение (переменная) имеет один и тот же смысл. Вне этой части эта переменная не имеет смысла, «не видна». Поэтому эту часть называют областью видимости переменной. Вне области видимости переменной это же обозначение можно использовать для др. целей, оно будет означать др. величину и присваивание этой переменной «не испортит» значения одноименной переменной в др. области видимости.

6. Что такое "событие", "событие, ориентированное управление", "обработчик события"? Какие события каких объектов вы знаете?

Событие – особое состояние программной системы и/или внешних устройств, в момент наступления которого система автоматически запускает заданные программистом действия – обработчик этого события. Событие всегда происходит с каким-либо объектом!

В VBA forExcel есть понятие – событие: двойной щелчок по ячейке, изменение значения, переход на другой лист.

Если происходит определённое событие, Excel автоматически вызывает соответствующий метод в соответствующем объекте, этот метод обычно является подпрограммой написанной нами. Это и есть событийное управление, т.е. вы не должны в процессе выполнения программы периодически проверять, не щёлкнул ли пользователь мышкой или не изменил ли значение. Управление, ориентированное на событие это стиль написания программы, в которой проверка произошло ли какое-либо событие или нет, скрыто от программиста и обеспечивается системой, программист при этом обеспечивает программы, реагирующие на каждое событие отдельно.

В VB принято такие “обработчики событий” оформлять в виде Sub-подпрограмм, имена которых содержат название самого события и название объекта (лист1_activate).

Activate – возникает, когда лист становится текущим.

Имя листа_Activate Название подпрограммы.

Deactivate – событие возникает, когда пользователь переключается на другой лист, активным при этом является другой лист.

BeforeDoubleClick – событие происходит при двойном щелчке по ячейке.

Change – происходит когда содержимое ячейки меняется

Calculate – происходит при пересчёте листа.

SelectionChange – происходит при выборе нового диапазона.

Наши рекомендации