Top > Ruby [2.2.2] > class
★★ class ★★ class RoboSutsu # コンストラクタ def initialize(pname=nil) @name = pname end attr_accessor :name def set(pname) @name = pname end end ★★ 上のクラスをリストに持つクラスの宣言 ★★ class SiroBase # コンストラクタ def initialize(pname=nil, pindx=0) @list = Array.new @indx = pindx end attr_accessor :list, :indx # リスト追加 def add(mobile=nil) if mobile != nil @list.push(mobile) @indx+=1 end end # インデックス指定検索 def [](n) @list[n] end end ★★ 保存する配列 ★★ sutsu = ["acha" , "porute" , "piipo"] base = SiroBase.new() # リストクラスを生成 sutsu.each do |name| mobiru = RoboSutsu.new mobiru.set(name) base.add(mobiru) end base.list.each do |sutsu| p sutsu.name end # "acha" # "porute" # "piipo" p base[2].name # "piipo" p base[5].name # undefined method `name' for nil:NilClass (NoMethodError)