Lukumenetelmä , getter ( eng. getter - vastaanottaja) - (ohjelmoinnissa) erityinen menetelmä , jonka avulla voit saada tietoja, joihin pääsy on suoraan rajoitettu. Se on yksi olio-ohjelmoinnin tekniikoista , joka auttaa toteuttamaan joustavan kapselointimekanismin . Yhdistettynä setterin kanssa sitä voidaan käyttää ominaisuuksien ja menetelmien järjestämiseen kielillä , joissa niitä ei tueta.
Tässä esimerkissä pääsy piilotettuun kenttään FDatatarjotaan menetelmillä SetData ( setter ) ja GetData( getter )
PHP:llä ei ole suoraa mekanismia getterien käyttämiseen, joten ne toteutetaan "magic" __get() -menetelmällä
<?php class Foo { yksityinen $data ; public function __get ( $nimi ) { $method = 'get' . ucfirst ( $nimi ); if ( method_exists ( $this , $method )) { return $this -> $method (); } } public function getData () { return $this -> data ; } }C#:ssa ominaisuusmekanismissa käytetään gettereitä ja settereitä . Getteri vastaa hakusanaa, setteri joukkoa. Versio 3 esitteli automaattisen getterin.
class Foo { yksityinen int id ; yksityinen merkkijononimi ; _ public int ID { get { return id ; } } julkinen merkkijono Nimi { get { return name ; } set { this . nimi = arvo ; } } julkinen merkkijono SomeProperty { get ; asettaa ; } }VB.NET:ssä getterin luomiseksi sinun on määritettävä ReadOnly-muunnin, jos et käytä setteriä. Automaattisesti toteutettuja ominaisuuksia on ilmestynyt VB 10.0:sta lähtien, eli ominaisuustoteutusta ei tarvitse kirjoittaa, ilmoitus riittää.
Public Class Foo Private m_Data As Integer 'Yksityinen kenttä tiedoilla Julkisen omaisuuden viesti kokonaislukuna "automaattisesti toteutettu ominaisuus VB 10.0:sta lähtien Julkinen vain luku -omaisuuden tiedot kokonaislukuna ' Vain luku - julkinen omaisuus Hae palautus m_Data Lopeta Hae End Omaisuuden loppuluokkaPythonissa luokan getter ja setter voidaan tehdä @property decoratorilla, __-alkuiset attribuutit merkitään käytettävissä oleviksi vain objektin sisällä.
luokka Foo : def __init__ ( itse , data = Ei mitään ): itse . __data = data @property def data ( self ): palauta itse . __data @data . setter def data ( itse , arvo ): itse . __data = arvo