Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Свойства
Как вы узнали из урока 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) следует лишь те свойства и методы, которые абсолютно необходимы для работы внешних программ.
|