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中的所有对象,包括类和模块,都具有自己的属性和方法,也都可以被赋值给变量、作为参数传递和返回值返回。