Читайте также:
|
|
Как вы узнали из урока 3, свойства — это переменные, предназначенные для получения и возвращения данных классов. Свойства, как и методы, бывают закрытыми и открытыми. Открытые свойства могут использоваться процедурами, находящимися вне области видимости данного класса. Открытые свойства образуют часть интерфейса класса. Закрытые свойства используются для хранения информации, не входящей в интерфейс. Они предотвращают намеренное или случайное изменение данных, обеспечивающих нормальную работу класса. Эти данные можно получить только с помощью специальных функций открытого интерфейса. Работа со свойствами классов осуществляется при помощи операторов Property Get, Property Let и Property Set. Оператор Property Get образует открытый интерфейс для получения значений переменных класса, к которым программа не может обратиться напрямую. Оператор Property Let выполняет противоположную задачу — он позволяет задавать значения переменных класса. Оператор Property Set позволяет передать объект по ссылке. Такая возможность может пригодиться, если модуль класса должен напрямую работать с внешним элементом (в следующем примере будет показано, как это делается). Свойства также можно создавать, объявляя их открытыми в данном классе. Операторы Property Get и Property Let позволяют создать простейшую модель безопасности для свойств класса. Вернемся к нашему примеру с банкоматом. Там есть два хороших претендента на роль свойств — переменные AccountNo и PIN. Давайте переработаем наш класс так, чтобы вы могли задать нужные значения свойств и затем вызвать методы без всяких параметров. Например:
Public AccountNo As String
Public PINNo As String
Private Function GetBalanceO As Double
GetBalance = 10000000
End Function
Public Function DisplayAccountlnfo() As Double
If AccountNo = "123456" And PINNo = "5551289" Then
DisplayAccountlnfo = GetBalance()
End If
End Function
А вот как выглядит тот же фрагмент с использованием операторов Property Let и Property Get:
Private AcctNo As String
Private PINNo As String
Private Property Let AccountNo(x As String)
AcctNo = x
End Property
Public Property Let PIN(x As String)
PINNo = x
End Property
Private Function GetBalance() As Double
GetBalance = 10000000
End Function
Public Function DisplayAccountlnfo() As Double
If AccountNo = "123456" And PIN = "5551289" Then
DisplayAccountlnfo = GetBalance()
End If
End Function
ПОДСКАЗКА Пользуйтесь ключевым словом Private, чтобы изолировать свойства и методы внутри классов. Тем самым вы защитите класс от некорректного обращения со стороны внешней программы. Делать открытыми (Public) следует лишь те свойства и методы, которые абсолютно необходимы для работы внешних программ.
Дата добавления: 2015-07-20; просмотров: 86 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Работа с модулями классов | | | События |