Сеттер (программирование)

Сеттер (англ. setter, также устанавливающий метод, модифицирующий метод, мутатор) — метод, используемый в объектно-ориентированном программировании для присвоения какого-либо значения инкапсулированному полю, например, обработав при этом недопустимые присваивания. Часто реализуется в паре с методом-геттером, позволяющим получать значение поля класса.

Пример на Java:

 public class ScheduleTask {            private int hours;            public void setHours(int hours) {          if ((hours >= 0) && (hours < 24))              this.hours = hours;      }  } 

Здесь для изменения скрытого поля hours нужно использовать сеттер setHours, который будет следить за тем, чтобы оно принимало только допустимые значения.

В C# благодаря синтаксическим возможностям (контекстные ключевые слова set и value — использующееся только в сеттере) чаще применяется другая методика:

  public class ScheduleTask   {     private int hours;     public int Hours     {       set       {          if ( (value >= 0) && (value < 24) )          {            hours = value;          }       }     }   } 

При этом возможно использование и через публичный метод, так как фактически конструкцию set { ... } компилятор C# преобразует в метод класса.

Сеттер в VB.NET обязан иметь модификатор WriteOnly, если не будет реализован геттер:

Public Class Foo     Private m_Data As Integer 'Закрытое поле с данными     Public Property Message As Integer 'Автореализуемое свойство, начиная с VB 10.0      Public WriteOnly Property Data  As Integer 'Открытое свойство только для записи         Set(Value As Integer)             m_Data = Value         End Set     End Property End Class