Läsmetod , getter ( eng. getter - mottagare) - (i programmering) en speciell metod som gör att du kan få data vars åtkomst är direkt begränsad. Det är en av teknikerna för objektorienterad programmering som hjälper till att implementera en flexibel inkapslingsmekanism . Parat med en setter kan den användas för att organisera egenskaper och metoder på språk där de inte stöds.
I det här exemplet FDatatillhandahålls åtkomst till det dolda fältet genom metoderna SetData ( setter ) och GetData( getter )
PHP har ingen direkt mekanism för att använda getters, så de implementeras genom den "magiska" __get() metoden
<?php klass Foo { privat $data ; offentlig funktion __get ( $name ) { $method = 'get' . ucfirst ( $namn ); if ( method_exists ( $this , $method )) { return $this -> $metod (); } } public function getData () { return $this -> data ; } }I C# används getters och setters i egenskapsmekanismen . En getter motsvarar nyckelordet get, en setter till en uppsättning. Version 3 introducerade en automatisk getter.
klass Foo { privat int id ; privat strängnamn ; _ public int ID { get { return id ; } } offentlig sträng Namn { get { return name ; } ställ in { detta . namn = värde ; } } offentlig sträng SomeProperty { get ; set ; } }I VB.NET, för att skapa en getter, måste du ange ReadOnly-modifieraren om du inte använder en setter. Autoimplementerade egenskaper har dykt upp sedan VB 10.0, det vill säga det finns inget behov av att skriva en fastighetsimplementering, det räcker med en deklaration.
Public Class Foo Privat m_Data Som heltal 'Privat fält med data Public Property Message As Integer 'Auto-implementerad egendom sedan VB 10.0 Allmän skrivskyddad egendomsdata som heltal ' Skrivskyddad offentlig egendom Få retur m_Data End Get End Property End ClassI Python kan en klass getter och setter göras med hjälp av @property decorator, attribut som börjar med __ markeras som tillgängliga endast inom objektet.
klass Foo : def __init__ ( själv , data = Ingen ): själv . __data = data @property def data ( self ): returnera själv . __data @data . setter def data ( själv , värde ): själv . __data = värde