Getter (programación)

Método de lectura , getter ( ing.  getter  - destinatario) - (en programación) un método especial que le permite obtener datos, cuyo acceso está directamente limitado. Es una de las técnicas de programación orientada a objetos que ayuda a implementar un mecanismo de encapsulación flexible . Junto con un setter, se puede usar para organizar propiedades y métodos en idiomas en los que no se admiten.

Ejemplos

Java

clase Foo { datos int privados ; bandera booleana privada ; public void setData ( int data ) { this . datos = datos ; } getData público int () { datos de retorno ; } public void setFlag ( bandera booleana ) { this . bandera = bandera ; } // Se recomienda prefijar las propiedades booleanas con is en lugar de obtener el booleano público isFlag () { return flag ; } }

C++

clase Foo { privado : int m_datos ; público : void setData ( datos int ) { m_datos = datos ; } int getData () const { devolver m_datos ; } }

Delfos

tipo TFoo = clase privada FData : Integer ; función pública GetData : Integer ; procedimiento SetData ( const ANewData : Integer ) ; propiedad Datos : Entero leer GetData escribir SetData ; fin ; función TFoo . ObtenerDatos : Entero ; comenzar Resultado := FData ; fin ; procedimiento TFoo . SetData ( const ANewData : Integer ) ; comenzar FData := ANewData ; fin ;

En este ejemplo, el acceso al campo oculto FDatase proporciona a través de los métodos SetData ( setter ) y GetData( getter )

Rubí

class Foo attr_accessor :bar # Azúcar sintáctico de Ruby para # crear automáticamente un getter y setter para el final de la variable bar Foo = Foo . Foo nuevo . bar = 42 # llamar a foo.bar=(42) (colocador) foo . bar # llamar a foo.bar (captador)

javascript

var Foo = función ( barra ) { este . barra = barra _ }; foo _ prototipo = { obtener barra () { consola . log ( 'captador de barras' ); devolver esto . _barra ; }, establecer barra ( barra ) { consola . log ( 'fijador de barras' ); esto _ _barra = barra ; } }; var foo = nuevo Foo ( 15 ); foo _ barra = 123 ; // consola de ajuste de barra . registro ( foo . bar ); // captador de barras, 123

PHP

PHP no tiene un mecanismo directo para usar getters, por lo que se implementan a través del método "mágico" __get()

<?php clase Foo { private $datos ; función pública __get ( $nombre ) { $método = 'obtener' . ucfirst ( $nombre ); if ( method_exists ( $this , $method )) { return $this -> $method (); } } función pública getData () { return $this -> data ; } }

C#

En C#, se utilizan getters y setters en el mecanismo de propiedad . Un getter corresponde a la palabra clave get, un setter a un conjunto. La versión 3 introdujo un getter automático.

clase Foo { private int id ; nombre de cadena privado ; _ public int ID { get { return id ; } } public string Nombre { get { return nombre ; } establecer { este . nombre = valor ; } } public string SomeProperty { get ; conjunto ; } }

VB.NET

En VB.NET, para crear un getter, debe especificar el modificador ReadOnly si no usa un setter. Las propiedades autoimplementadas han aparecido desde VB 10.0, es decir, no es necesario escribir una implementación de propiedad, basta con una declaración.

Public Class Foo Private m_Data As Integer 'Campo privado con datos Mensaje de propiedad pública como entero 'Propiedad implementada automáticamente desde VB 10.0 Public ReadOnly Property Data As Integer 'Propiedad pública de solo lectura Obtener Return m_Data End Obtener End Property End Class

Pitón

En Python, se puede crear un captador y definidor de clase utilizando el decorador @property, los atributos que comienzan con __ se marcan como disponibles solo dentro del objeto.

clase Foo : def __init__ ( self , datos = Ninguno ): self . __datos = datos @property def data ( self ): return self . __datos @datos . setter def data ( self , value ): self . __datos = valor

Véase también

Notas