Устанавливающий метод, сеттер (англ. setter) или модифицирующий метод, мутатор (англ. mutator) — метод, используемый в объектно-ориентированном программировании для того, чтобы присвоить какое-либо значение инкапсулированному полю, например, обработав при этом недопустимые присваивания.
public class ScheduleTask {
private int hours;
public void setHours(int hours) {
if ((hours >= 0) && (hours < 24))
this.hours = hours;
}
}
В данном примере имеется скрытое поле hours
. Чтобы изменить его значение, нужно использовать сеттер setHours
, который будет следить за тем, чтобы оно принимало только допустимые значения.
public class ScheduleTask
{
private int hours;
public int Hours
{
set
{
if ( (value >= 0) && (value < 24) )
{
hours = value;
}
}
}
}
Нужно обратить внимание на то, что в этом примере на C#, показана другая методика, которая гораздо ближе к синтаксическим возможностям C#. Кроме того, нужно заметить, что используются контекстные ключевые слова set
и value
(value
используется только в сеттере). Конечно, допускается использование принципа, изложенного в примере на Java — через публичный метод — так как фактически конструкцию 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
class Foo
# эта пара методов обычно создается с помощью метода класса:
# attr_accessor :bar
def bar
@bar
end
def bar=(val)
@bar = val
end
end
foo = Foo.new
foo.bar = 42 # вызов foo.bar=(42) (setter, с синтаксическим сахаром)
foo.bar # вызов foo.bar (getter)
В этой статье не хватает ссылок на источники информации. |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .