Шаг 2 - Свойства (Property) класса

Вообще свойства можно рассматривать как характеристики объекта. Например, цвет или видимость. Ну, например, рассмотрим автомобиль. У него есть цвет, тип кузова и так далее. Мы можем менять эти свойства при выборе автомобиля. Ну, например, приходим в салон и говорим: "мне запорожец, красный c фиолетовым салоном". Это совсем не тоже самое, что нажать на газ или переключить скорость. И совсем не тоже самое, что у Вас загорится лампочка отсутствия масла. Изменения свойств приводят к изменению объекта, изменения выполняемых действий или вида объекта, но они не заставляют объект работать. Пример с автомобилем. Марка - это свойство. Изменение марки приведет к изменению поведения. Скажем возможной скорости езды или цены. Наличие педали газа тоже свойство. А вот нажатие на эту педаль это уже не свойство, так как приведет к работе внутри объекта. Еще раз, свойства - это описательные характеристики, которые можно менять и который меняют объект, но не приводят к выполнению действий. Они только устанавливают какие действия можно выполнить.

Свойиств у класса может быть три типа.

1. Свойство (property) Get возвращает текущее значение свойства. Property Get позволяет спросить - "а как установлена характеристика ?". Например, виден объект или нет, какого он цвета, какой цены и так далее.

Public Property Get Color() As Integer
	Color = color 
End Property

2. Свойство (property) Let устанавливает новое свойство. Property Let позволяет сказать мол "этот объект должен быть видимым". Этот объект должен быть красным, у этого объекта есть колесо и так далее.

Public Property Let Color(i As Integer)
	color = i
End Property

3. Свойство (property) Set - это аналог Let и применяется в том случае, если свойство является объектом и передается объект.

Именно такая организация сделана по одной причине. Ведь можно было хранить все в открытых переменных. Причина в том, что Вы можете применять свойства в том случае, если есть необходимость проверять передаваемые значения на корректность. Например:

Public Property Let  Color(i As Integer)
	If (i > 0) Then color = 1
End Property

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

gif/2_1.gif (1610 b)

Они организуют доступ у переменной внутри класса. Обратите внимание на то, что имя у свойства всегда одинаковое, а отличается только приставка Let и Get. Кроме того, типы переменных в Let и Get должны быть согласованы. Тип, передающийся в Let должен возвращаться в Get.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.