--方法
Object # instance_variables 列出對象變量
Object # instance_methods 列出對象方法
Object # ancestors 列出祖先鏈
Array # grep 列出指定參數
--總結
對象由一組實例變量和一個類的引用組成
對象的方法存在於對象所屬的類中(從類的角度看,他們叫做實例方法)
類本身是Class類的對象。類的名字不過是一個常量而已。
Class類是Module的子類。一個模塊基本上是由一組方法組成的包。類出了具有模塊的特性之外,還可以被實例化(通過new()方法)及被組織爲層次結構(通過他的superclass()方法)
常量像文件系統一樣,是按照樹形結構組織的。其中模塊和類的名字扮演目錄的角色,其他普通的常量則扮演文件的角色。
每個類都有一個祖先鏈,這個鏈從自己所屬的類開始,向上直到BasicObject類結束。(具體根據Ruby版本 可能有變動)
當調用一個方法時,Ruby首先向右一步來到接受者所屬的類,然後一直向上查找祖先鏈,直到找到該方法,或則到達鏈的頂端爲止。
當調用一個模塊時,該模塊會被插入到祖先鏈中,位置在該類的正上方。
當調用一個方法時,接受者會扮演self的角色。
當定義一個模塊(或者類)時,該模塊扮演self的角色。
實例變量永遠都被認定爲self的實例變量。
任何沒有明確指定接受者的方法調用,都當成是調用self的方法。