Getter (programare)

Metoda de citire , getter ( eng.  getter  - destinatar) - (în programare) o metodă specială care vă permite să obțineți date, accesul la care este direct limitat. Este una dintre tehnicile de programare orientată pe obiecte care ajută la implementarea unui mecanism flexibil de încapsulare . Împreună cu un setter, poate fi folosit pentru a organiza proprietăți și metode în limbi în care acestea nu sunt acceptate.

Exemple

Java

clasa Foo { date int private ; steag boolean privat ; public void setData ( int date ) { this . data = data ; } public int getData () { return date ; } public void setFlag ( steag boolean ) { this . steag = steag ; } // Este recomandat să prefixați proprietățile booleene cu is, mai degrabă decât să obțineți public boolean isFlag () { return flag ; } }

C++

clasa Foo { privat : int m_data ; public : void setData ( int date ) { m_data = date ; } int getData () const { returnează m_data ; } }

Delphi

tip TFoo = clasă private FData : Integer ; funcţia publică GetData : Integer ; procedura SetData ( const ANewData : Integer ) ; proprietate Data : Integer read GetData scrie SetData ; sfârşitul ; funcția TFoo . GetData : Integer ; start Rezultat := FData ; sfârşitul ; procedura TFoo . SetData ( const ANewData : Integer ) ; începe FData := ANewData ; sfârşitul ;

În acest exemplu, accesul la câmpul ascuns FDataeste oferit prin metodele SetData ( setter ) și GetData( getter )

Ruby

class Foo attr_accessor :bar # zahăr sintactic Ruby pentru a crea automat # un getter și setter pentru variabila bar foo = Foo . foo nou . bar = 42 # call foo.bar=(42) (setter) foo . bar # apel foo.bar (getter)

Javascript

var Foo = function ( bar ) { this . bar = bar _ }; foo . prototip = { get bar () { console . jurnal ( 'bar getter' ); returneaza asta . _bar ; }, set bar ( bar ) { console . jurnal ( 'setter bar' ); aceasta . _bar = bar ; } }; var foo = new Foo ( 15 ); foo . bar = 123 ; // consola setter bar . log ( foo . bar ); // bar getter, 123

PHP

PHP nu are un mecanism direct de utilizare a getterelor, deci sunt implementate prin metoda „magic” __get()

<?php class Foo { private $date ; funcția publică __get ( $nume ) { $metodă = 'obține' . ucfirst ( $nume ); if ( metoda_exista ( $aceasta , $metoda )) { returneaza $aceasta -> $metoda (); } } public function getData () { return $this -> data ; } }

C#

În C#, getters și setters sunt utilizați în mecanismul proprietăților . Un getter corespunde cuvântului cheie get, un setter unui set. Versiunea 3 a introdus un getter automat.

class Foo { private int id ; nume șir privat ; _ public int ID { get { return id ; } } public string Nume { get { return name ; } set { asta . nume = valoare ; } } public string SomeProperty { get ; set ; } }

VB.NET

În VB.NET, pentru a crea un getter, trebuie să specificați modificatorul ReadOnly dacă nu utilizați un setter. Proprietățile implementate automat au apărut începând cu VB 10.0, adică nu este nevoie să scrieți o implementare de proprietate, o declarație este suficientă.

Public Class Foo Private m_Data As Integer „Câmp privat cu date Mesaj de proprietate publică ca întreg „Proprietate implementată automat începând cu VB 10.0 Date de proprietate publică ReadOnly As Integer „Proprietate publică numai de citire Get Return m_Data End Obține End Property End Class

Python

În Python, o clasă de captare și setare poate fi realizată folosind decoratorul @property, atributele care încep cu __ sunt marcate ca disponibile numai în cadrul obiectului.

clasa Foo : def __init__ ( self , data = None ): self . __data = date @property def data ( self ): return self . __date @date . setter def data ( self , value ): self . __data = valoare

Vezi și

Note