Zjednodušený zápis definice třídy vypadá takto
classjméno_třídy
defnázev metody
příkazy
# tělo metody end ... definice dalších metod end
Jak je i na tomto zjednodušeném příkladu vidět, definujeme jen metody, nikoliv atributy objektu.
K dispozici máme několik konstruktorů přistupových metod pro atributy objektu. Ve zkratce jsou to
attr_reader
- vytváří metodu pro čtení atributu
attr_writer
- vytváří zápisovou metodu pro atribut
attr_accessor
- vytváří jak metodu pro zápis tak pro čtení atributu
attr
atribut
[, true/false] - vatváří přístupovou metodu pro čtení a je-li druhý parametr true
, tak i zápisovou metodu pro atribut. Je ekvivalentní kódu
attr_readerattribute
; attr_writerattribute
ifwritable
Zjednodušené zavedení atributů instance a jejich přístupových metod.
class Song attr_reader :name attr_writer :duration attr :volume attr_accessor :date, :symptom, :solution attr_..... end
Použití konstruktoru attr_accessor
class Obj attr_accessor :foo end
je ekvivalentní definici metod foo
a foo=
class Obj def foo return @foo end def foo=(newValue) @foo = newValue end end