打开类

通过 class 关键字声明一个类,如果原来有这个类,会在原来的类上修改,而不会覆盖整个类

    class A

      def a
       puts "a"
      end

    end

    class A

      def b
       puts "b"
      end

    end
  • 类 A 会有两个方法:a、b。
  • A 是 Class类的实例

obj = A.new

obj.a

实例方法,存放在类里面。 实例变量,存放在实例里面。

方法调用,

  • 接受者
  • 祖先链(ancestors chain),通过 Class#ancestors 方法获得类的祖先链。

模块

Module 是 Class 的超类。

module M3
  prepend M1 # 添加在当前模块(类)前面
  include M2 # 添加在当前模块后面。
end

M3.ancestors # => [M1,M3,M2]

Kernel 模块

方法