|
||||||||
|
Определение свойств
Обычно свойство определяется тремя своими элементами: полем и двумя методами, которые осуществляют его чтение/запись:
В данном примере доступ к значению свойства AProperty осуществляется через вызовы методов GetAProperty и SetAProperty. Однако в обращении к этим методам в явном виде нет необходимости: достаточно написать
и компилятор оттранслирует эти операторы в вызовы методов. То есть внешне свойство выглядит в точности как обычное поле, но за всяким обращением к нему могут стоять нужные вам действия. Например, если у вас есть объект, представляющий собой квадрат на экране, и вы его свойству "цвет" присваиваете значение "белый", то произойдет немедленная перерисовка, приводящая реальный цвет на экране в соответствие значению свойства. В методах, входящих в состав свойств, может осуществляться проверка устанавливаемой величины на попадание в допустимый диапазон значений, и вызов других процедур, зависящих от вносимых изменений. Если же потребности в специальных процедурах чтения и/или записи нет, возможно вместо имен методов применять имена полей. Рассмотрим следующую конструкцию:
В этом примере чтение значения свойства AValue означает просто чтение поля FValue. Зато при присвоении ему значения внутри SetValue вызывается сразу два метода. Если свойство должно только читаться или только записываться, в его описании может присутствовать только соответствующий метод:
В этом примере вне объекта значение свойства можно лишь прочитать; попытка присвоить AProperty значение вызовет ошибку компиляции. Для присвоения свойству значения по умолчанию используется ключевое слово default:
Для комментария : kadan@grsu.grodno.by | |||||||||||
За содержание страницы отвечает Гончарова М.Н. © Кафедра СПиКБ, 2002-2017 |