各位来普及一下吧。 我想学习一下。 语言表达太抽象了,实例说明好吧。
我试着解释一下:
“男人”是一个类,你就是“男人”的一个实例;你的年龄就是一个实例变量。
@武松 = 男人.new @武松.age = 36 @武松。打虎
#1 楼 @hujoy 这种例子我也常用
oo 的语言大致都是这样,只是语法表示上约有不同。 age 是类的变量 @武松.age = 36 是类的属性 @武松。打虎 是类的方法
age 应该不是类变量吧,应该属于实例变量吧。
这块在 ruby 中有点复杂的,如果可能还是读读 Programming Ruby 和 Metaprogramming Ruby 这两本书中的相关章节,再多读读源码。要把之个弄清楚,还要了解 minix, meta class (这个东西有多个叫法)和继承。
Ruby 中 oo 的关键点在于,所有东西都是对象,类也是对象。硬要举个例子的话:
Human = Class.new Human.instance_of? Class => true
即 Human 是 Class 类的一个实例。
a = 100 @a = 100 def result puts a puts @a end result
实例变量就是可以全局调用???
#6 楼 @KennX 实例变量在实例中可用,这个脚本默认运行在一个 Object 实例的空间中,不是全局
静态变量在 ruby 里面应该是类变量
@@世界上男人总数
这个东西我基本 (99.999%) 不用。
@hujoy 精辟!