- Setter
-
Сеттер (Мутатор, англ. Mutator) — специальный метод, используемый в объектно-ориентированном программировании для того, чтобы присвоить какое-либо значение инкапсулированному полю, например, обработав при этом недопустимые присваивания.
Содержание
Примеры
Java
public class ScheduleTask { private int hours; public void setHours(int hours) { if ((hours >= 0) && (hours < 24)) this.hours = hours; } }
В данном примере имеется скрытое поле
hours
. Чтобы изменить его значение, нужно использовать сеттерsetHours
, который будет следить за тем, чтобы оно принимало только допустимые значения.C#
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
Сеттер в 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
Ruby
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)
См. также
Категория:- Метод (информатика)
Wikimedia Foundation. 2010.