Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Альтернативы
Недавние
Show all languages
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

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

Из Википедии — свободной энциклопедии

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

Примеры

Java

class Foo {
 
    private int data;
    private boolean flag;
 
    public void setData(int data) {
        this.data = data;
    }

    public int getData() {
        return data;
    }
 
    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    // Для boolean свойств рекомендуется использовать префикс is, а не get
    public boolean isFlag() {
        return flag;
    }
}

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: Integer;
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 () {
      console.log('bar getter');
      return this._bar;
   },
   set bar (bar) {
      console.log('bar setter');
      this._bar = bar;
   }
};

var foo = new Foo(15);
foo.bar = 123; // bar setter
console.log(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, сеттеру — set. В версии 3 появился автоматический геттер.

class Foo
{
     private int id;
     private string name;
     public int ID
     {
         get { return id; }
     }
     public string Name
     {
         get { return name; }
         set { this.name = value; }
     }
     public string SomeProperty
     {
         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

Python

В Python геттер и сеттер класса можно сделать с помощью декоратора @property, атрибуты, которые начинаются с __ помечаются как доступные только внутри объекта.

class Foo:
     
    def __init__(self, data=None):
        self.__data = data
           
    @property
    def data(self):
        return self.__data
     
    @data.setter
    def data(self, value):
        self.__data = value

См. также

Примечания

Эта страница в последний раз была отредактирована 26 января 2021 в 18:04.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).