img

Средства доступа к свойствам класса

Работая со свойствами класса может понадобится реализовать особую логику для их чтении или записи. Например, может понадобится установить переменной значение по-умолчанию, если происходит попытка записи недопустимого значения. При этом программист может использовать стандартный оператор.(точка) для работы с такими объектами.

Для реализации такого доступа понадобится реализовать:

  • get действие, срабатывающее при чтении значения переменной
  • set действие, срабатывающее при записи значения в переменную
 class MyObject { private int realProp; int prop { get const { return realProp; } set { System.Print("Changing the value"); if(value < 0) realProp=0; else realProp = value; } } } int Run() { MyObject obj; obj.prop = -10; System.Print("Setting prop to -10. prop="+obj.prop); obj.prop = 5; System.Print("Setting prop to 5. prop="+obj.prop); return 0; } 

Результат:

 Changing the value Setting prop to -10. prop=0 Changing the value Setting prop to 5. prop=5 

Обратите внимание на использование переменной value, в которую вначале попадает значение при записи.

При использовании таких геттеров и сеттеров запрещено использовать некоторых операторов, например, ++, -- и т.д., такие операторы должны быть записаны в расширенном формате, чтобы чтение и запись осуществлять отдельно друг от друга (т.е. вместо x++ нужно указывать x=x+1).