Ruby 类,对象,变量,静态变量,实例变量

匿名 · 2011年12月02日 · 最后由 xoxoj 回复于 2012年02月04日 · 8696 次阅读

各位来普及一下吧。 我想学习一下。 语言表达太抽象了,实例说明好吧。

我试着解释一下:

“男人”是一个类,你就是“男人”的一个实例;你的年龄就是一个实例变量。

@武松 = 男人.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 类的一个实例。

匿名 #6 2011年12月05日
a = 100
@a = 100
def result
    puts a
    puts @a
end

result

实例变量就是可以全局调用???

#6 楼 @KennX 实例变量在实例中可用,这个脚本默认运行在一个 Object 实例的空间中,不是全局

静态变量在 ruby 里面应该是类变量

@@世界上男人总数

这个东西我基本 (99.999%) 不用。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号