Ruby:从另一个类的类方法中的一个类访问类实例变量

我正在研究一个ruby程序并遇到了以下问题。 我有两个类AClass和BClass如下:
class AClass
  attr_accessor :avar
  def initialize(input)
    @avar = input
  end
end

class BClass
  def BClass.build(aclass)
    bvalue = aclass.avar
    ....
  end
end
当我跑:
aclass = AClass.new           
puts aclass.avar              
bclass = BClass.build(aclass) 
前两行工作正常。 aclass是初始化的,avar被放到屏幕上,但第三行会产生错误。我似乎BClass构建方法无法访问AClass实例变量。我需要做些什么来完成这项工作。我以为attr_accessor会让我访问AClass实例变量。提前感谢您的意见。     
已邀请:
如果要为BClass创建新类型的初始化程序,可以执行以下操作:
class AClass
  attr_accessor :avar

  def initialize(input)
    @avar = input
  end
end

class BClass
  attr_accessor :bvalue

  def self.build(aclass)
    bclass = self.new
    bclass.bvalue = aclass.avar
    bclass
  end
end

aclass = AClass.new 'ruby'
bclass = BClass.build aclass
这将设置bclass.bvalue = aclass.avar ='ruby'。     
Mutu,你需要学习ruby的基础知识......你所拥有的甚至没有有效的ruby代码。 试试这个。
class AClass
  attr_accessor :avar

  def initialize(input)
    @avar = input
  end
end

class BClass
  attr_reader :bvalue

  def initialize(aclass)
    @bvalue = aclass.avar
  end
end
在irb
ruby-1.9.2-p136 :077 > a = AClass.new('ruby')
 => #<AClass:0x00000100997298 @avar="ruby"> 
ruby-1.9.2-p136 :078 > b = BClass.new(a)
 => #<BClass:0x000001009921d0 @bvalue="ruby"> 
ruby-1.9.2-p136 :079 > b.bvalue
 => "ruby" 
ruby-1.9.2-p136 :080 > a.avar
 => "ruby"
    

要回复问题请先登录注册