Ruby对象与类系列之一

Standard

Ruby是动态的、面向对象的语言。类和对象显然是Ruby的核心部分,但是刚接触的时候可能会感觉有些混乱。Ruby有许多概念比如类、对象、类对象、实例方法、类方法、单类(Singleton class)和虚类(Virtual class)。
关于Ruby中的类和对象,它的基本模型非常简单:

  • Ruby object有三个组成部分:一个标志的集合、一些实例变量、一个相关类。
  • Ruby class是类Class的一个对象,由于Ruby class是个对象,所以它包含Ruby对象的三个组成部分,又因为它是类,所以它还包含一个方法列表以及对父类的引用。
  • Ruby中方法的调用都会指定一个接收者(Receiver),默认为当前对象。Ruby调用方法时,首先在Receiver’s class的方法列表里寻找有没有要调用的方法,然后再到任何一个included module里面查找,最后receiver类的父类中寻找;然后是父类的included module和父类的父类,以此下去,直到找到需要的方法。如果在receiver和它的任何父类中都没有找到要调用的方法,Ruby会在最初的receiver中调用method_missing方法。下面的图例说明了Ruby方法的调用次序。

ruby_method.gif

总的来说,Ruby中类和对象的交互可以通过上述的简单的模型来进行解释:对象引用类,类引用零个或多个父类。

Advertisements

2 thoughts on “Ruby对象与类系列之一

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s