【戻る】 【進む】   目次        10. クラスとメソッド - クラス定義

クラス定義

  • クラスは「class クラス名 … end」で定義される
  • メッセージに対する応答はクラスのメソッドとして定義される
  • メソッドはクラス定義の中で「def メソッド名 … end」で定義される

  • 典型的なクラス定義

    class Foo
      def hi
        puts "Hi!"
      end
    end
                                   
    foo = Foo.new
    foo.hi        #=> Hi!
    bar = Foo.new
    bar.hi        #=> Hi!
    
    defclass0.rb
     

    既存のクラスへの定義の追加、再定義

    class Array
      def sum
        s = 0
        for i in self
          s += i
        end
        s
      end
    
      def +(other)
        a = []
        each_index do |i|
          a.push self[i] + other[i]
        end
        a
      end
    end
    
    arraysum.rb
     


    【戻る】 【進む】   目次        10. クラスとメソッド - クラス定義