你能告诉我为什么这不起作用吗?
下面的代码正确输出 student1 和 student2,但我无法让类方法在 student3 上工作。
我要做的就是分配一个类方法.create_with_species
,其中物种属性=“人类”。
但是,当我运行程序时,我收到“局部变量或方法sex
未定义”的错误。我是新手,我无法弄清楚我做错了什么!
我的理解是,由于我在 Initialize 方法中确定了“性别”,我应该能够在类方法中使用它,例如create_with_species
. 我尝试在类方法中明确定义性别, as student.sex = sex
,但仍然遇到相同的错误。
class Students
attr_accessor :sex, :age, :species
def self.create_with_species(species)
student = Students.new(sex,age)
student.species = species
return student
end
def initialize(sex, age)
@sex = sex
@age = age
puts "----A new student has been added----"
end
end
student1 = Students.new("Male", "21")
puts student1.sex
puts student1.age
puts
student2 = Students.new("Female", "19")
puts student2.sex
puts student2.age
student3 = Students.create_with_species("human")