WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Устанавливающий метод, сеттер (англ. 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)

См. также

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии