Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Свойства






Как вы узнали из урока 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) следует лишь те свойства и методы, которые абсолютно необходимы для работы внешних программ.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.011 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал