0

我正在做一些在互联网上找到的初学者类型的 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对象初始化错误(因为参数数量)

你怎么看?

4

1 回答 1

2

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

于 2012-08-18T16:22:42.760 回答