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

Unknow user · December 02, 2011 · Last by xoxoj replied at February 04, 2012 · 8693 hits

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

我试着解释一下:

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

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

Unknow user #6 December 05, 2011
a = 100
@a = 100
def result
    puts a
    puts @a
end

result

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

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

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

@@世界上男人总数

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

You need to Sign in before reply, if you don't have an account, please Sign up first.