Capítulo 24. Accesores

Tabla de contenidos
24.1. El método inspect
24.2. Facilitando la creación de accesores
24.3. Más diversión con la fruta

En un capítulo anterior se trató brevemente las variables instancia, pero no se hizo mucho con ellas. Las variables instancia de un objeto son sus atributos, eso que diferencia a un objeto de otro dentro de la misma clase. Es importante poder modificar y leer estos atributos; lo que supone definir métodos denominados accesores de atributos. Veremos en un momento que no siempre hay que definir los métodos accesores explícitamente, pero vayamos paso a paso. Los dos tipos de accesores son los de escritura y los de lectura.


ruby> class Fruta
ruby|   def set_kind(k) # escritor
ruby|     @kind = k
ruby|   end
ruby|   def get_kind    # lector
ruby|     @kind
ruby|   end
ruby| end
nilx
ruby> f1 = Fruta.new
#<Fruta:0x401c4410>
ruby> f1.set_kind("melocotón")      #utilizamos el escritor
"melocotón"
ruby> f1.get_kind               #utilizamos el lector
"melocotón"
ruby> f1                        #inspeccionamos el objeto
#<Fruta:0x401c4410  @kind="melocotón">

Sencillo; podemos almacenar y recuperar información sobre la clase de fruta que queremos tener en cuenta. Pero los nombres de nuestros métodos son un poco largos. Los siguientes son más breves y convencionales:


ruby> class Fruta
ruby|   def kind=(k)
ruby|     @kind = k
ruby|   end
ruby|   def kind
ruby|     @kind
ruby|   end
ruby| end
nil
ruby> f2 = Fruta.new
#<Fruta:0x401c30c4>
ruby> f2.kind = "banana"
"banana"
ruby> f2.kind
"banana"