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

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

Геттер (англ. Getter — получатель) — (в программировании) специальный метод, позволяющий получить данные, доступ к которым напрямую ограничен. Это один из методов объектно-ориентированного программирования, может помочь реализовать гибкий механизм инкапсуляции. В паре с сеттером (Setter), может использоваться для организации свойств, в языках, где они не поддерживаются.

Содержание

Примеры

Java

 class Foo {
 
     private int m_data;
 
     public void setData(int data) {
          m_data = data;
     }
 
     public int getData() {
          return m_data;
     }
 }

C++

 class Foo
 {
 private:
   int m_data;
 public:
   void SetData (int data)
   {
      m_data = data;
   }
   int GetData () const
   {
      return m_data;
   }
 }

Delphi

type 
  TFoo = class
  private
    FData: Integer;
  public
    function GetData: Integer;
    procedure SetData(const ANewData: Integer);
    property Data: Integer read GetData write SetData;
  end;
 
function TFoo.GetData;
begin
  Result := FData;
end;
 
procedure TFoo.SetData(const ANewData: Integer);
begin
  FData := ANewData;
end;

В данном примере доступ к скрытому полю FData обеспечивается через методы SetData (сеттер) и GetData (геттер)

Ruby

  class Foo
    attr_accessor :bar # синтаксический сахар Ruby для автоматического
                       # создания getter'а и setter'а для переменной bar
  end
 
  foo = Foo.new
  foo.bar = 42  # вызов foo.bar=(42) (setter)
  foo.bar       # вызов foo.bar (getter)

Javascript

var Foo = function (bar) {
   this.bar = bar;
};
Foo.prototype = {
   get bar () {
      alert('bar getter');
      return this._bar;
   },
   set bar (bar) {
      alert('bar setter');
      this._bar = bar;
   }
};
 
var foo = new Foo(15);
foo.bar = 123; // bar setter
alert(foo.bar); // bar getter, 123

PHP

В PHP отсутствует прямой механизм использования геттеров, поэтому их реализуют через "волшебный" метод __get()

<?php
 
class Foo
{
    private $data;
 
    public function  __get($name)
    {
        $method = 'get'.ucfirst($name);        
        if (method_exists($this, $method)) {
            return $this->$method();
        }
    }
 
    public function getData()
    {
        return $this->data;
    }
}

C#

В C# используется ключевое слово get, начиная с версии 3 появился автоматический геттер.

class Foo
{
     private int _data;
     public int Date
     {
         get { return _data; }
     }
}
class Foo
{
     public int Data { get; set; }
}

VB.NET

В VB.NET для создания геттера обязатально необходимо указать модификатор ReadOnly если не используется сеттер. Автореализуемые свойства появились начиная с VB 10.0, т.е. нет необходимости писать реализацию свойства, достаточно объявления.

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

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Геттер (программирование)" в других словарях:

  • Свойство (программирование) — У этого термина существуют и другие значения, см. Свойство (значения). В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы м …   Википедия

  • ООАП — Объектно ориентированное программирование (ООП) парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием прототипов). Класс это тип, описывающий… …   Википедия

  • Объектно-ориентированный подход — Объектно ориентированное программирование (ООП) парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием прототипов). Класс это тип, описывающий… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»