新手在这里,很难理解类方法以及为什么我无法在实例中正确显示属性。
class Animal
attr_accessor :noise, :color, :legs, :arms
def self.create_with_attributes(noise, color)
animal = self.new(noise)
@noise = noise
@color = color
return animal
end
def initialize(noise, legs=4, arms=0)
@noise = noise
@legs = legs
@arms = arms
puts "----A new animal has been instantiated.----"
end
end
animal1 = Animal.new("Moo!", 4, 0)
puts animal1.noise
animal1.color = "black"
puts animal1.color
puts animal1.legs
puts animal1.arms
puts
animal2 = Animal.create_with_attributes("Quack", "white")
puts animal2.noise
puts animal2.color
当我使用类方法create_with_attributes
(在animal.2上)时,我希望"white"
在我出现时出现puts animal2.color
。
好像我已经定义了它attr_accessor
,就像我有“噪音”一样,但噪音正确出现,而颜色则不会。当我运行这个程序时,我没有收到错误,但是 .color 属性只是没有出现。我相信这是因为我在代码中以某种方式错误地标记了它。