对象作为新类中的变量?红宝石

时间:2012-08-18 16:17:16

标签: ruby oop

我在互联网上做了一些初学者类型的OOP练习。目前我的任务是创建两个类:

  • 人:带变量:姓名,年龄。
  • 歌曲:带变量:标题,作者(人物类型),发行日期

问题是如何创建此Person类型变量。 我试过这个:

class Person
  attr_accessor :name, :surname, :age

  def initialize name, surname, age = nil
    @name, @surname, @age = name, surname, age
  end
end


class Song
  attr_accessor :tite, :author, :date_of_issue

  def initalize title, author , date_of_issue
    @title, @author, @date_of_issue = title, Person.new, date_of_issue
  end
end

当我尝试创建新对象时:

 song1 = Song.new("All_you_need_is_love", "The_beattles", 1967)

我明白了:

  

ArgumentError:参数数量错误(0表示2)

所以我有两个想法:

  1. 我的Song班级代码错误

  2. song1对象初始化错误(因为参数数量)

  3. 您怎么看?

1 个答案:

答案 0 :(得分:2)

你应该在歌曲中正确拼写initialize。还要考虑 Person 构造函数至少需要2个参数。