Ruby中的 类 (Class) 是一种抽象数据类型,它封装了一组 属性 (Attributes) 和 方法 (Methods),用于描述某个具有共同特征的对象的行为和状态。类是对象的 模板 (Template),通过类可以创建出多个对象,这些对象都具有相同的属性和方法。例如,可以定义一个名为 Person 的类,用于表示人类,这个类有属性如 name、age 和 gender,有方法如 say_hello 和 walk,然后可以通过 Person.new 创建出多个人类的对象,每个对象都有自己的 name、age 和 gender 属性,以及自己的 say_hello 和 walk 方法。
Ruby中的 对象 (Object) 是类的实例化结果,每个对象都有自己的属性和方法。对象可以调用自己的方法,也可以访问自己的属性。例如,可以通过 Person.new 创建出一个名为 p1 的人类对象,然后可以通过 p1.say_hello 让这个对象调用自己的 say_hello 方法,或者通过 p1.name 访问这个对象的 name 属性。
Ruby中的 模块 (Module) 是一种组织代码的方式,可以将一组相关的类、方法、常量和其他模块组织在一起,形成一个独立的命名空间。模块可以作为命名空间使用,也可以作为 混入 (Mixin) 使用。作为命名空间使用时,模块中的类和方法可以通过 模块名::类名 或 模块名.方法名 的方式进行访问。作为混入使用时,模块中的方法可以被包含到其他类中,从而让这些类具有模块中的方法。例如,可以定义一个名为 Talkable 的模块,其中包含了一个名为 talk 的方法,然后可以通过 include Talkable 将这个模块混入到 Person 类中,从而让 Person 类具有 talk 方法。
需要注意的是,在Ruby中,类也是对象,类是 Class 类的实例化结果,而模块也是对象,模块是 Module 类的实例化结果。因此,Ruby中的所有对象,包括类和模块,都具有自己的属性和方法,也都可以被赋值给变量、作为参数传递和返回值返回。