attr_readerでアクセサ作り

Rubyでは、attr_readerを使うと属性へのアクセサ(ゲッタ)を作れます。以下のプログラムでは@attr1のgetterはありますが、@attr2のgetterはありません。ですからo.attr2でエラーになります。

class Rubyco
    attr_reader :attr1

    def initialize(attr1, attr2)
        @attr1 = attr1
        @attr2 = attr2
    end
end

o = Rubyco.new(123, 456)
p o.attr1
p o.attr2

実行結果の抜粋です。

123
undefined method `attr2' for #<Rubyco:0x2946f58 @attr2=456, @attr1=123> (NoMethodError)