我正在研究红宝石对象模型,并有一些问题.我理解一个对象只存储实例变量的想法,方法存储在类中,一个对象有一个引用.我也了解“自我”的想法 – 它是什么,它如何变化等等.
但是,我不明白的是“课堂是对象”的概念.有什么好的,直观的解释吗?
(BTW:我使用Ruby Object Model and Metaprogramming和Metaprogramming Ruby作为我的两个资源,如果有人可以提出其他建议,那将是有帮助的.)
谢谢.
解决方法
这意味着它的意思是什么 – 类是对象.具体来说,它们是类Class的实例,它本身是类Module的子类,它又是Object的子类,就像Ruby中的所有其他类一样.像Ruby中的任何其他对象一样,类可以响应消息,拥有自己的实例变量等.
作为一个实际的例子,让我们私下.
class Person attr_accessor :name,:height private attr_accessor :weight end
这提供了Person公共方法的实例来访问该人的名字和身高,但是该人的权重的访问者是私有的. BUTBUTBUT – 而不是像大多数语言一样是关键字,private是Module类的普通方法.如果我们想要,我们可以重新定义它来为特定的类层次结构做不同的事情.
class RichardStallman def self.private(*args) puts "NO! INFORMATION WAS MEANT TO BE FREE!" end end