我想使用实例变量的值来设置另一个类中的实例变量的值。
即
如果类foo有一个变量move
我创建了两个foo实例,每个实例都有不同的值(可能是相同的值)
我有一个类栏我希望它的初始化方法有一个参数x和y参数x将是一个整数。参数y将是foo实例的实例名称。
类栏的initialize方法将局部变量移动到初始化参数中传递的实例的移动值。
从提供的答案中提取的一个例子
class Bar
def initialize(x, y)
@move = y.getmove
end
attr_reader :move
end
class foo
def initialize (move)
@move = move
end
def getmove
@move
end
car = foo.new(3)
train = foo.new(6)
audi = Bar.new(2, car) # instance audi should now have a move variable set to 3
thomas = bar.new(6, train) # instance thomas should now have a move variable set to 6
请注意我不想通过继承实现这一点,因为类栏需要从另一个类继承。
这可能吗?怎么样?
答案 0 :(得分:1)
这就是你所描述的:
class Bar
def initialize(x, y)
@move = y.move
end
attr_reader :move
end
Bar.new(2, foo)