# Linked list example class MyElem # オブジェクト生成時に自動的に呼ばれるメソッド def init_object(item) # @変数はインスタンス変数(宣言は要らない) @data = item @next = nil end def data @data end def next @next end # 「obj.data = val」としたときに暗黙に呼ばれるメソッド def next=(new) @next = new end end class MyList def add_to_list(obj) elt = MyElem.new(obj) if @head @tail.next = elt else @head = elt end @tail = elt end def each elt = @head while elt yield elt elt = elt.next end end # オブジェクトを文字列に変換するメソッド # これを再定義するとprintでの表現が変わる def to_s str = "