Interested Article - Сеттер (программирование)
![](/images/008/196/8196160/1.jpg?rand=124938)
![](https://cdn.wafarin.com/avatars/38e18925d2a8e9c1df99bd4d6462af86.jpg)
- 2021-04-24
- 1
Сеттер ( англ. 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
![](https://cdn.wafarin.com/avatars/38e18925d2a8e9c1df99bd4d6462af86.jpg)
- 2021-04-24
- 1