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»