如何从另一个类调用另一个类方法?

时间:2016-07-28 22:47:46

标签: ruby

我有以下结构

 class A
      def method1
      end
 end

 class B
       @my = A.new
       def classATest
          @myT.method1
       end

       def newTest
           classATest
       end
 end

 class C
      newB = B.new
      newB.newTest
 end

当我运行C类时,它给出了一个错误,它找不到类A的method1(方法newtest,调用方法classATest,它使用全局变量调用method1。我做错了什么?这是不允许的?

1 个答案:

答案 0 :(得分:2)

您的@my = A.new行没有做任何有用的事情。它创建一个新对象并将其指定为 class B的实例变量,但是这种变量不能由B的实例使用而不需要额外的努力。您应该用以下内容替换该行:

def initialize
  @myT = A.new
end

另外,你有一个错字:你在一个地方写了@my而在另一个地方写了@myT

或者,按照您的方式保留代码,并将@my@myT替换为常量名称,例如MyA。 Ruby中的常量以大写字母开头,可以按照您尝试使用此变量的方式使用。