本帖最后由 张咚咚 于 2017-7-11 18:07 编辑
这和java是一个意思,一个类里面,如果变量没有与方法函数重名,使用var和super.var没有任何区别的
class Window_aa attr_accessor :var def initialize @var = 1 #实例化变量 end def mt(var) p var #局部变量 p @var #实例变量,不好意思蒙圈了,是实例变量只有实例后才有效 p self.var #与类变量一致,但必须要本类或父类声明 attr_accessor :var 才可调用 end end Window_aa.new.mt(555) class Window_bb < Window_aa def initialize super #实例化变量(调用父类) end def mt(var) p var #局部变量 p @var #实例变量 p self.var #与类变量一致,但必须要本类或父类声明 attr_accessor :var 才可调用 end end Window_bb.new.mt(555)
class Window_aa
attr_accessor :var
def initialize
@var = 1 #实例化变量
end
def mt(var)
p var #局部变量
p @var #实例变量,不好意思蒙圈了,是实例变量只有实例后才有效
p self.var #与类变量一致,但必须要本类或父类声明 attr_accessor :var 才可调用
end
end
Window_aa.new.mt(555)
class Window_bb < Window_aa
def initialize
super #实例化变量(调用父类)
end
def mt(var)
p var #局部变量
p @var #实例变量
p self.var #与类变量一致,但必须要本类或父类声明 attr_accessor :var 才可调用
end
end
Window_bb.new.mt(555)
这样应该就好理解了吧 |